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)
渲染此数据框会产生:
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.
解决方案
简单的解决方案:
df.apply(pd.Series.value_counts)