如何在熊猫中添加带有countif的行

时间:2019-08-04 21:48:15

标签: python pandas dataframe sum countif

我有一个值为1和2的DataFrame。 我想在DataFrame的末尾添加一行,计算每一列中的数字1。应该差不多
COUNTIF(A:A,1)并拖动到excel中的所有列

我尝试了类似df.loc['lastrow']=df.count()[1]的操作,但结果不正确。
我该怎么办?此功能(count()[1])的作用是什么?

2 个答案:

答案 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 )