Python pandas中如何通过同列两行值相加填充指定行缺失值
替换指定行缺失值的实现方法
前置准备
首先将原始字典转换为可操作的pandas DataFrame,提前导入依赖库:
import pandas as pd import numpy as np df = pd.DataFrame({ 'col1': {0: 'v1', 1: 'v2', 2: 'v3', 3: 'v4'}, 'col2': {0: np.nan, 1: 13, 2: 76, 3: 2}, 'col3': {0: np.nan, 1: 91, 2: 3, 3: 33}, 'col4': {0: np.nan, 1: 9, 2: 47, 3: 62} })
操作逻辑
- 筛选出
col1取值为v2、v4的行,对col2、col3、col4三列逐列求和,得到每列的填充目标值 - 定位
col1取值为v1的行,将计算得到的逐列填充值,写入该行对应列的缺失位置
核心实现代码
# 计算v2、v4对应行的三个目标列的逐列和 fill_values = df[df['col1'].isin(['v2', 'v4'])][['col2', 'col3', 'col4']].sum() # 填充v1行的缺失值 df.loc[df['col1'] == 'v1', ['col2', 'col3', 'col4']] = fill_values
执行后输出结果
col1 col2 col3 col4 0 v1 15.0 124.0 71.0 1 v2 13.0 91.0 9.0 2 v3 76.0 3.0 47.0 3 v4 2.0 33.0 62.0
内容的提问来源于stack exchange,提问作者Prasad Patil
相关产品推荐
相关产品推荐

