Pandas列值的频率

时间:2016-02-14 13:35:16

标签: python pandas

我正在做一些熊猫的工作,我正试图从数据集中找到某些值。我正在寻找某一列的模式和模式频率。

我使用#include "warnings_off.h" /* ...code that emits spurious warnings here... */ #include "warnings_restore.h" 获得了模式,这样可以正常工作并返回模式(例如男性)。现在我无法在列中获得此值的频率。我知道我可以使用df.col1.mode()

获取列中所有值的频率

我尝试使用df.col1.value_counts()尝试获取此次发生的次数,但收到错误消息df.col1.value_counts()['Male']

这是查找某个值在列中显示的次数的正确方法吗?

2 个答案:

答案 0 :(得分:0)

print df

   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9

df.groupby('A').size()/df['A'].count()

A
1    0.333333
4    0.333333
7    0.333333
dtype: float64

答案 1 :(得分:0)

您将遇到的一个问题是在模式中有多个项目,因此您没有一对一的映射。作为解决方法,您可以使用字典理解来获取每个模式。

df = pd.DataFrame({'gender': ['Male', 'Male', 'Female', 'Female', 'Shemale'], 
                   'State': ['CA', 'OR', 'AZ', 'CA', 'NY']})

modes = df.gender.mode()
>>> {item: len(df.gender[df.gender.isin(modes[modes == item])]) for item in modes}
{'Female': 2, 'Male': 2}