python - 在 FOR 循环内的行之间执行 Sum 运算时排除 NaN 值

标签 python

我有两个数据框,如下所示

df1=
   2492  3853  2486  3712  2288
0    4   NaN   3.5   NaN   NaN
1    3   NaN   2.0   4.5   3.5
2    3   3.5   4.5   NaN   3.5
3    3.   NaN   3.5   4.5   NaN


df2=

2492  0.476683
3853  0.464110
2486  0.438992
3712  0.400275
2288  0.379856

现在我想通过排除 NaN 值来获得 df2 值的总和 预期输出

0    0.915675[0.476683+0.438992]
1    1.695806[0.476683+0.438992+0.400275+0.379856]
2    1.759641[0.476683+0.464110+0.438992+0.379856]    
3    1.31595 [0.476683+0.438992+0.400275]

请让我知道您对如何解决此问题的想法(无需将 NaN 值替换为“0”)

最佳答案

df2.sum(1).sum()

应该足够了并且跳过 NaN。

第一个 sum 是一个 DataFrame 方法,它返回一个包含每行总和的 Series,然后第二个是对该 Series 上的值求和。

默认情况下会忽略 NaN。

编辑:仅使用df2.sum()就足够了

关于python - 在 FOR 循环内的行之间执行 Sum 运算时排除 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203965/

相关文章:

python - 限制数组的值

python - numpy数组的计算/操作

python - Google 应用程序引擎端点 api python

python - 填充列表 nan 值

python - Codecademy - Python - 学生成为老师 8/9 - 整体的一部分

python - 错误, 'only list-like objects are allowed to be passed to isin(), you passed a [int]'

python - python是否有类似于字典的内置列表get()?

python - 如何在本地修改字典而不影响 python 中的全局变量

Python 网页抓取 : Too slow in execution: How to Optimize for speed

python - Pandas :在x轴上绘制时间直方图