Python Pandas:如何对包含缺失值的列求和?

3

我有一个数据框,其中有多列,但其中三列的情况如下:

num1  num2   num3 
1      NaN    1
NaN     1     1
1       1     1

我希望创建另一列"sum_num",并将每行所有列的值相加(或者计算1的数量,因为这些值都是1)。

预期结果:

num1  num2   num3 sum_num
1      NaN    1      2
NaN     1     1      2
1       1     1      3

我尝试了这段代码,但是“sum_num”列中只有NaN。

df['sum_num'] = df.num1 + df.num2 + df.num3

有人知道如何忽略缺失值并仍然对它们进行求和或计数,以便每行获得所需的结果吗?

2个回答

2

axis=1 上的 sum

In [202]: df['sum_num'] = df.sum(axis=1)

In [203]: df
Out[203]:
   num1  num2  num3  sum_num
0     1   NaN     1        2
1   NaN     1     1        2
2     1     1     1        3

谢谢。如果数据框中有其他列,我只想对这些特定的列进行求和,该怎么办? - UserYmY
df [列列表].sum(axis=1) - Zero
是的,我已经弄清楚了。你能告诉我如何计算1的数量而不是将它们加起来吗? - UserYmY
df.count(axis=1) - Zero
哈哈,谢谢。现在我感觉有点傻了。我的意思是,如果不是所有的值都是1,比如还有0,那么怎么同时计算1和0的数量呢? - UserYmY

1

实际上,您可以从数据框中创建一个子集,这里是df:

sum_num = df[['num1', 'num2', 'num3']]

然后将子集添加到df

df['summed'] = sum_num.sum(axis=1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接