我想用熊猫将多列的频率相加。列的数量可以在2-15列之间变化。这是仅3列的示例:
code1 code2 code3
27 5 56
534 27 78
27 312 55
89 312 27
我希望得到以下结果:
code frequency
5 1
27 4
55 1
56 2
78 1
312 2
534 1
要计算一列内的值不是问题,只需要一个数据帧中所有频率的总和就可以出现一个值,而不管列数如何。
您可以stack
,并在所得系列中获得stack
:
value_counts
将value_counts
用于df.stack().value_counts().sort_index()
5 1
27 4
55 1
56 1
78 1
89 1
312 2
534 1
dtype: int64
,然后按DataFrame.melt
计数,按DataFrame.melt
排序,最后将其转换为reshape
Series.value_counts
:
Series.value_counts