python - 使用 pandas 数据框中的两列作为行名和列名,并用第三列填充表格
问题描述
抱歉标题令人困惑,我不确定描述问题的最佳方式是什么。但是一个例子应该会有所帮助。
假设这是我的pandas
数据框
col1 = ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E']
col2 = ['a', 'c', 'd', 'e', 'b', 'c', 'd', 'e', 'a', 'c']
col3 = [143, 62, 12, 75, 9, 71, 40, 95, 23, 13]
df = pd.DataFrame([col1,col2,col3]).transpose()
df.columns = ['col1', 'col2', 'col3']
df
col1 col2 col3
0 A a 143
1 A c 62
2 B d 12
3 B e 75
4 C b 9
5 C c 71
6 D d 40
7 D e 95
8 E a 23
9 E c 13
我想使用唯一值col1
作为我的新df的行名,并使用唯一值col2
作为列名,然后col3
在新df中填充值并用0填充空白。例如,newdf.loc['A','a']
将返回143
,并且newdf.loc['C','a']
将是0
。newdf
应该是一个5x5
数据框 。
最简单的方法是做一个双for
循环,但我很好奇是否有更简单的方法。
我希望我的解释是有道理的,并感谢大家的帮助!
解决方案
推荐阅读
- python - 优化嵌套for循环所花费的时间
- angular - Angular fire 应用程序在刷新页面时失去身份验证状态
- swift - 静态成员的快速反射
- java - 如何在 JSprit 中为灵活的时间窗口实现 SoftActivityConstraint?
- asynchronous - 在异步消息传递中,客户端-代理通信是同步的吗?
- reactjs - 如何使用 Yup Validation 确认 React 表单中的匹配值?
- line - 删除 GDocs 中的硬换行符而不是段落换行符
- blazor-server-side - 无法重定向到 Blazor 服务器中的错误页面,因为它将 200 状态代码返回到不存在的页面
- nlp - NLP 变压器网络中的注意头“能力”
- python - 蟒蛇海生。无法解释输入“工作日名称”