python - 计算替换 NaN 的值的总和
问题描述
我在 B 列中有一个带有一些 NaN 的数据框。
df = pd.DataFrame({
'A':[654,987,321,654,987,15,98,338],
'B':[987,np.nan,741,np.nan, 65,35,94,np.nan]})
df
A B
0 654 987.0
1 987 NaN
2 321 741.0
3 654 NaN
4 987 65.0
5 15 35.0
6 98 94.0
7 338 NaN
我将 B 中的 NaN 替换为 A 中的数字
df.B.fillna(df.A, inplace = True)
df
A B
0 654 987.0
1 987 987.0
2 321 741.0
3 654 654.0
4 987 65.0
5 15 35.0
6 98 94.0
7 338 338.0
计算已替换 B 中的 NaN 的值的总和的最简单方法是什么?
解决方案
可以使用series.isna()
with.loc[]
过滤满足列为空条件的 A 列B
,然后求和:
df.loc[df['B'].isna(),'A'].sum()
选择:
df['B'].fillna(df['A']).sum() - df['B'].sum()
注意:您应该在执行就地操作之前执行此操作,或者最好创建一个副本并保存在不同的变量下以供以后参考。
推荐阅读
- python - 如何获得 后端的价值?蟒蛇烧瓶
- ios - LLDB 如何加载崩溃日志
- excel - 在 VBA 中使用 SUMIF
- mysql - 使用大型 SQL 数据库填充 CoreData
- php - 如何使用 vue 步骤访问 JSON 对象值?
- javascript - 如何在 JavaScript 中捕获 ALT+N 按键
- sorting - SAS Proc 排序不同于 Proc SQL 顺序
- java - 等待任务完成的 HTTP 请求
- entity-framework - 将 OData 与模型继承一起使用会导致缺少属性错误
- php - 影响数据库的 Laravel 测试用例 - 使用最佳实践