计算列中特定项目的出现次数

Counting the occurences a particular item in a column

ctr = df['gender'].value_counts()

ctr

**Output:**

female       102

male          83

nonbinary      5

trans          2

Name: gender, dtype: int64

这是我得到的输出,我知道输出应该是这样的。但是我想知道 'gender' 列下特定项目的频率,例如在这种情况下;女性或男性,并希望将这些频率中的每一个存储到两个单独的变量中。我是这个领域的新手。感谢任何帮助。

pd.DataFrame({"a":["a","a","b"]}).a.value_counts(normalize=True)

您所要做的就是添加规范化。 我很确定这个问题是重复的,但我找不到它。

我发现这是我正在寻找的解决方案....

fe =len(df[df['gender']=='female'])

fe 

输出:102

最快的方法是使用 value_counts()。

如您所知,df['gender'].value_counts() 将为您提供分配。但是,您也可以指定要查找的内容。

import pandas as pd
df = pd.DataFrame({'gender':['male','female','trans','nonbinary',
                             'male','female','male','female',
                             'male','female','male','female',
                             'male','female','female','trans','nonbinary',
                             'male','male','male','trans',
                             'male','male','female','female',
                             'male','male','nonbinary','trans','male']})
#print (df)
m = df['gender'].value_counts().male
f = df['gender'].value_counts().female
t = df['gender'].value_counts().trans
b = df['gender'].value_counts().nonbinary

print (df['gender'].value_counts())
print ('male      :', m)
print ('female    :', f)
print ('trans     :', t)
print ('nonbinary :', b)

这个输出将是:

values_counts() 会给你一个输出:

male         14
female        9
trans         4
nonbinary     3
Name: gender, dtype: int64

然而,特定的打印会给你输出:

male      : 14
female    : 9
trans     : 4
nonbinary : 3