Skip to main content
 首页 » 编程设计

python之使用 Pandas 计算数据框中列中出现的数字

2025年05月04日23kerrycode

我有一个如下所示的数据框。顶部有一列。第二列的下方给出了元素名称。我正在尝试对每个元素下的所有数字进行计数,并尝试转置数据,以便转置后排名将成为列标题,计数将是每个排名下的数据。尝试了多种使用 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