基于DataFrame列C的非空值复制需求:C<10k时复制行值且不覆盖非空值
实现DataFrame行值同步且仅覆盖空值
核心操作逻辑
- 从d1中筛选出列'C'值小于10000的行
- 用筛选出的行数据填充d2,仅替换d2中的NaN,非空值保留原值
代码实现
# 筛选d1中符合条件的行 filtered_d1 = d1[d1['C'] < 10000] # (可选)若d1和d2索引不完全匹配,先对齐索引 filtered_d1_aligned = filtered_d1.reindex(d2.index) # 填充d2的空值,非空值保持不变 d2 = d2.fillna(filtered_d1_aligned)
补充说明
- 若d1和d2的索引完全一致,可省略
reindex步骤,直接执行d2.fillna(filtered_d1) fillna()方法会自动匹配相同索引的行,仅用filtered_d1的有效值替换d2对应位置的NaN,不会修改d2已有的非空数据
内容的提问来源于stack exchange,提问作者SimAzz
相关产品推荐
相关产品推荐

