抱歉,标题令人困惑,我不确定描述问题的最佳方法是什么。但是一个例子应该会有所帮助。
假设这是我的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
中的唯一值用作列名,然后在新df中使用col3
值填充用0填充空格。例如,newdf.loc['A','a']
将返回143
,而newdf.loc['C','a']
将是0
。 newdf
应该是5x5
数据帧。
最简单的方法是执行两次for
循环,但是我很好奇是否有更简单的方法。
我希望我的解释有意义,谢谢大家的帮助!