我有一个如下所示的数据框。顶部有一列。第二列的下方给出了元素名称。我正在尝试对每个元素下的所有数字进行计数,并尝试转置数据,以便转置后排名将成为列标题,计数将是每个排名下的数据。尝试了多种使用 pandas 的方法,例如
df.eq('1').sum(axis=1) df2=df.transpose
但没有得到想要的输出。
您如何按照 1-5 的等级对这些项目进行排名
XYZ
1 2 1
2 1 3
3 1 1
1 3 2
1 1 2
2 5 3
4 1 2
1 4 4
3 3 5
期望的输出是这样的
1 2 3 4 5
X (count of 1s)(count of 2s).....等等
Y(1 的计数)(2 的计数)......
Z(1 的计数)(2 的计数)......
任何帮助都意义重大。
请您参考如下方法:
您可以将 pd.value_counts 应用于所有列,这将计算所有列的值,然后转置结果:
df.apply(pd.value_counts).fillna(0).T
# 1 2 3 4 5
#X 4.0 2.0 2.0 1.0 0.0
#Y 4.0 1.0 2.0 1.0 1.0
#Z 2.0 3.0 2.0 1.0 1.0
