我正在做一些熊猫的工作,我正试图从数据集中找到某些值。我正在寻找某一列的模式和模式频率。
我使用#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']
这是查找某个值在列中显示的次数的正确方法吗?
答案 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}