计算整个DataFrame中的值数量

时间:2019-01-25 01:11:09

标签: python python-3.x pandas

我目前有50列和大约50000行的DataFrame。我试图找出一个值(例如2)出现在整个DataFrame中的总次数。

DataFrame仅包含0到7之间的值。我可以使用以下命令对单个列执行代码:

print(df['col1'].value_counts())

然后我尝试创建如下所示的for循环:

for cols in df:
    print(df[cols].value_counts())

这有效,但是它作为每一列的单独结果打印出来。

我试图将结果显示如下,而不是按列划分结果,但对于DataFrame中所有列的合并,而不仅仅是1列。

val    no.
7.0    165
3.0    127
5.0     118
6.0     112
2.0      98
4.0      88
1.0      64
0.0      21
Name: col1, dtype: int64

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

输入一个特定值:

(df.values == 2).sum()

或全部:

np.unique(df.values, return_counts=True)

答案 1 :(得分:2)

您可能需要先检查第一个stack,然后再检查value_counts,现在您可以从索引中选择所需的内容

df.stack().value_counts()

答案 2 :(得分:2)

您也可以尝试使用Counter

from collections import Counter

print(pd.DataFrame(Counter(df.values.flatten()), index=['Count']).T)