我有这样一个数据帧:
df = pd.DataFrame({"id":[1, 1, 1, 2, 2, 2, 2, 3, 3], "val":["A12", "B23", "C34", "A12", "C34", "E45", "F56", "G67", "B23"]})
print(df)
id val
0 1 A12
1 1 B23
2 1 C34
3 2 A12
4 2 C34
5 2 E45
6 2 F56
7 3 G67
8 3 B23
我如何将它转换成这样
id A12 B23 C34 E45 F56 G67
0 1 1 1 1 0 0 0
1 2 1 0 1 1 1 0
2 3 0 1 0 0 0 1
我尝试了pivot和unstack,但由于每个“id”的“val”列中的值数量可能不同,因此我无法创建列的主列表,然后以某种方式填充这些列中的值。请帮忙
尝试交叉表:
您可以使用^{} 和^{} :
印刷品:
用
get_dummies
和groupby
的另一种方式:或
set_index
和get_dummies
:输出:
相关问题 更多 >
编程相关推荐