首页 > 解决方案 > Pandas:从频率表中选择百分比最高的列

问题描述

嗨,我有一个数据框,我想从频率表中选择百分比最高的列。

d = {'c1':['a', 'a', 'b', 'b', 'c', 'c'], 'c2':['Low', 'High', 'Low', 'High', 'High', 'High']}
dd = pd.DataFrame(data=d)
dd.groupby('c1')['c2'].value_counts(normalize=True).mul(100)

它将返回一个频率表

c1  c2  
a   High     50.0
    Low      50.0
b   High     50.0
    Low      50.0
c   High    100.0
Name: c2, dtype: float64

我想打印出c哪个百分比最高100.0

我可以用来max()打印100.0但不知道如何打印c

标签: pandas

解决方案


让我们尝试 reset_index 和 drop level=1 然后使用 idxmax 找到最大索引

dd.groupby('c1')['c2'].value_counts(normalize=True).mul(100).reset_index(level=1, drop=True).idxmax()

推荐阅读