计算pandas DataFrame列中的值的频率

Kis*_*han 23 python django dataframe pandas

我想计算每个值出现在数据帧中的次数.

这是我的数据框 - df:

    status
1     N
2     N
3     C
4     N
5     S
6     N
7     N
8     S
9     N
10    N
11    N
12    S
13    N
14    C
15    N
16    N
17    N
18    N
19    S
20    N
Run Code Online (Sandbox Code Playgroud)

我想要计数字典:

恩. counts = {N: 14, C:2, S:4}

我试过df['status']['N']但它给了但keyErrordf['status'].value_counts没有用.

jez*_*ael 60

你可以使用value_countsto_dict:

print df['status'].value_counts()
N    14
S     4
C     2
Name: status, dtype: int64

counts = df['status'].value_counts().to_dict()
print counts
{'S': 4, 'C': 2, 'N': 14}
Run Code Online (Sandbox Code Playgroud)


Col*_*vel 9

另一种使用失败者的衬垫Counter:

In [3]: from collections import Counter

In [4]: dict(Counter(df.status))
Out[4]: {'C': 2, 'N': 14, 'S': 4}
Run Code Online (Sandbox Code Playgroud)


su7*_*u7k 6

你可以试试这个方法。

df.stack().value_counts().to_dict()
Run Code Online (Sandbox Code Playgroud)