我有一个值为1和2的DataFrame。
我想在DataFrame的末尾添加一行,计算每一列中的数字1。应该差不多
COUNTIF(A:A,1)
并拖动到excel中的所有列
我尝试了类似df.loc['lastrow']=df.count()[1]
的操作,但结果不正确。
我该怎么办?此功能(count()[1]
)的作用是什么?
答案 0 :(得分:2)
您可以将数据框与您感兴趣的值进行比较(例如1
),然后对这些布尔值求和,例如:
>>> df
0 1 2 3 4
0 2 2 2 1 2
1 2 2 2 2 2
2 2 1 2 1 1
3 1 2 2 1 1
4 2 2 1 2 1
5 2 2 2 2 2
6 1 1 1 1 2
7 2 2 1 1 1
8 1 1 1 2 1
9 2 2 1 2 1
>>> (df == 1).sum()
0 3
1 3
2 5
3 5
4 6
dtype: int64
因此,您可以追加该行,例如:
>>> df.append((df == 1).sum(), ignore_index=True)
0 1 2 3 4
0 2 2 2 1 2
1 2 2 2 2 2
2 2 1 2 1 1
3 1 2 2 1 1
4 2 2 1 2 1
5 2 2 2 2 2
6 1 1 1 1 2
7 2 2 1 1 1
8 1 1 1 2 1
9 2 2 1 2 1
10 3 3 5 5 6
因此,最后一行包含前几行1
的数量。
答案 1 :(得分:2)
您可以在append
之后进行sum
df.append(df.eq(1).sum(),ignore_index=True )