【发布时间】:2018-02-17 06:11:08
【问题描述】:
我正在尝试获取列的最显着/最频繁的值,所以我尝试了以下代码,
df['currency'].value_counts(normalize=True)
这给了我,例如
USD 0.800000
CAD 0.100000
EUR 0.050000
GBP 0.050000
现在边缘情况就像
USD 0.500000
CAD 0.500000
或
USD 0.333333
CAD 0.333333
CNY 0.333333
或
USD 0.400000
CAD 0.400000
CNY 0.100000
EUR 0.100000
以此类推,频率在所有值或部分值之间是偶数。
现在我正在尝试检测这种边缘情况,那么最好的方法是什么?
换句话说,我试图找到系列/列中某个值的最主要频率,因为df['currency'].value_counts().max() 不一定给出最高频率,因为df['currency'].value_counts() 给出的值都可能是相同的。因此data.df['currency'].value_counts().idxmax() 不一定会给出列中频率最高的索引/列值。
【问题讨论】:
-
你需要
s = df[col].value_counts();s[s==s.max()]? -
你考虑过使用Series.mode()方法吗?
标签: python-3.x pandas dataframe series