首页 > 解决方案 > 数据框中的数字频率

问题描述

我有一个这样的数据集(数字):

数据集

我想获得所有列中最频繁的数字。

我试过了

#through all the columns
for i in numeros[:16]:
print(numeros[i].value_counts().idxmax())

及其回报

1,7,12,5,8,17,14,9,20,2,6,4,14,2,21

但这只会返回每列中出现频率最高的数字,对吧?考虑到我的所有数据集,如何获得最多的 15 个频繁数字?

标签: pythonpandasnumpy

解决方案


熊猫解决方案:

df = pd.DataFrame(np.random.randint(1,100,(9,15)))
df = df.stack().to_frame('key')
df['value'] = 1
df.groupby('key').count().sort_values(['value'],ascending=False).iloc[:15]

推荐阅读