我目前有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
任何帮助将不胜感激!
答案 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)