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
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
解决方案
让我们尝试 reset_index 和 drop level=1 然后使用 idxmax 找到最大索引
dd.groupby('c1')['c2'].value_counts(normalize=True).mul(100).reset_index(level=1, drop=True).idxmax()
推荐阅读
- elasticsearch-high-level-restclient - 引导方法初始化异常 - Elasticsearch 7.8.0
- r - 使用 R 创建样本量图
- ionic-framework - 单击离子选择时如何打开自定义模式对话框
- firebase - Firestore 查询单个文档
- javascript - 电子错误;jQuery 必须在 Bootstrap 的 JavaScript 之前包含(它是)
- r - 如何将 lapply 用于 concat.split()
- android - 我可以使用 agora_rtc 在 Flutter 中实现一对一的语音通话(VOIP)吗?
- recursion - 这是我用 Prolog 制作的阶乘代码的问题
- azure - 如何使用 Azure B2C 对 Microsoft 聊天机器人进行身份验证
- html - 调整在 CSS 中