Python 计算每个值在列中出现的次数

Python 计算每个值在列中出现的次数,python,pandas,Python,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) for i in range(0 , df.shape[1]) :

呈现此数据帧会产生:

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)
for i in range(0 , df.shape[1]) : 
    print(df.iloc[:,i].value_counts().values)
我试图计算每个值在列中出现的次数,因此对于上述数据帧,应生成以下内容:

   0  1  2
0  1  0  1
1  1  0  1
2  0  1  1
使用.values():

产生:

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)
for i in range(0 , df.shape[1]) : 
    print(df.iloc[:,i].value_counts().values)
标签已从每列中删除。如何访问每个计数的关联标签?因此,我们可以生产:

[2 1]
[2 1]
[3]

如果预期只有
0
1
值,则添加缺失值-按预期值列表重新索引:

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

您可以通过以下方式迭代序列:

不清楚您希望如何推断零计数,所以我没有假设这是一个要求。结果如下:

for i in range(0 , df.shape[1]):
    counts = df.iloc[:,i].value_counts()
    gen = (f'{key} occurs {value} times' for key, value in counts.items())
    print(*gen, sep=', ')
简单解决方案:

1 occurs 2 times, 0 occurs 1 times
0 occurs 2 times, 1 occurs 1 times
1 occurs 3 times

您可以尝试分别为每列使用
value\u counts()
df.apply(pd.Series.value_counts)