Pandas 熊猫:从频率表中选择百分比最高的列

Pandas 熊猫:从频率表中选择百分比最高的列,pandas,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

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

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

让我们尝试重置索引并删除level=1,然后使用idxmax查找最大索引

dd.groupby('c1')['c2'].value_counts(normalize=True).mul(100).reset_index(level=1, drop=True).idxmax()
也许就这么做吧

dd.groupby('c1')['c2'].value_counts(normalize=True).idxmax()[0]
Out[102]: 'c'

回答得好。您可以删除
.mul(100)
,因为它是无用的。非常感谢。有没有办法打印出“c High 100.0”?抱歉,我应该在问题中更清楚地指定它。
s=dd.groupby('c1')['c2'].value\u计数(normalize=True)。mul(100);s、 loc[[s.idxmax()]
谢谢@Quang Hoang,我没有注意到这个评论。