python - 如何从熊猫数据框中的另一列创建列,如下所示
问题描述
我有一个数据框,其中包含列 x、y、z、A 的重复记录
X Y Z A
a US 88 2016
a IND 88 2016
a IND 88 2017
a RSA 45 2017
a RSA 45 2018
b US 65 2017
b RSA 58 2018
c RSA 58 2016
我想通过计算 X 列的每个值的不同国家/地区来从 A 列的值创建列。如下所示。
X Z 2016 2017 2018
a 88 2 1 0
a 45 0 1 1
b 65 0 1 0
c 58 1 0 0
我不知道如何在 python 中做到这一点,请帮助我
解决方案
您可以使用pivot_table
:
df.pivot_table('Y',['X','Z'],'A',aggfunc='count', fill_value=0).reset_index()
输出:
A X Z 2016 2017 2018
0 a 45 0 1 1
1 a 88 2 1 0
2 b 58 0 0 1
3 b 65 0 1 0
4 c 58 1 0 0