我有一个pandas数据框我想计算一个数字出现在每列的列中的频率
a b c d e
0 2 3 1 5 4
1 1 3 2 5 4
2 1 3 2 5 4
3 2 4 1 5 3
4 2 4 1 5 3
这是我的代码不起作用
def equalsOne(x):
x[x.columns == 1].sum()
df1.apply(equalOne(), axis = 1)
这是所需的输出
a 2
b 0
c 3
d 0
e 0
答案 0 :(得分:19)
你可以这样做:
(df==1).sum()
df==1
给出:
a b c d e
0 False False True False False
1 True False False False False
2 True False False False False
3 False False True False False
4 False False True False False
和sum()
将False
视为0
,将True
视为1
。
答案 1 :(得分:4)
这应该可以解决问题
df1[df1 == 1].count()