如何更改数据帧以计数变量



我有一个这样的数据帧:

df = pd.DataFrame({"X":['a', 'b', 'c', 'b', 'b', 'a'],
"Y":['A', 'B', 'A', 'C', 'A', 'A']})

我可以使用哪种方法来计算类似的值并将其更改为:

a  b  c
A  2 1 1  
B  0 1 0
C  0 1 0

您可以尝试crosstab(文档(:

pd.crosstab(df.Y, df.X)

结果:

X  a  b  c
Y         
A  2  1  1
B  0  1  0
C  0  1  0

您可以使用pivot_table方法,第一个参数是数据源,我认为columns参数、index参数和fill_value参数不需要解释,但我想澄清一下aggfunc参数:"size"将包括nan值,如果您将此参数设置为"count",则只计算no-nan值。你可以在这个答案中阅读更多关于这方面的内容。

pd.pivot_table(df, columns='X', index='Y', fill_value=0, aggfunc='size')

输出:

X  a  b  c
Y         
A  2  1  1
B  0  1  0
C  0  1  0

最新更新