首页 > 解决方案 > 计算每个值在 pandas 列中出现的次数

问题描述

import pandas as pd 

test_values = []

test_values.append(np.array([1,0,1]))
test_values.append(np.array([1,0,1]))
test_values.append(np.array([0,1,1]))

test_values

df = pd.DataFrame(test_values)

渲染此数据框会产生:

   0  1  2
0  1  0  1
1  1  0  1
2  0  1  1

我正在尝试计算每个值在列中出现的次数,因此对于上述数据框,应生成以下内容:

1 occurs 2, 0 occurs 0. 
0 occurs 2, 1 occurs 1. 
1 occurs 3, 0 occurs 0.

使用 .values() :

for i in range(0 , df.shape[1]) : 
    print(df.iloc[:,i].value_counts().values)

产生:

[2 1]
[2 1]
[3]

标签已从每一列中删除。如何访问每个计数的关联标签?所以可以产生:

1 occurs 2, 0 occurs 0. 
0 occurs 2, 1 occurs 1. 
1 occurs 3, 0 occurs 0.

标签: pythonpandas

解决方案


简单的解决方案:

df.apply(pd.Series.value_counts)

推荐阅读