You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas将DataFrame中A6、A7行的np.nan值替换为另一个DataFrame的对应值

解决方法:将df指定行的NaN替换为df1的对应值

这里有两种简单高效的方法可以完成这个需求,直接来看代码和对应的解释:

方法1:通过.loc精准定位赋值

这种方法适合你明确知道要替换的行和列范围的场景,直接定位后赋值即可:

# 选取df中与df1匹配的行和列,赋值df1的内容
df.loc[df1.index, df1.columns] = df1

解释:df1的索引是A6、A7,列是4b、5c、6d,正好完全对应df中需要替换NaN的位置。通过.loc选取这些行和列的交叉区域,直接把df1的值赋过去,就能精准覆盖原来的NaN值。

方法2:使用pandas的update方法

如果你想更简洁地完成更新,update方法是专门干这个的——它会自动匹配两个DataFrame的索引和列,用df1的有效值覆盖df对应位置的内容:

# 用df1更新df的对应位置
df.update(df1)

解释:update方法会智能匹配两个DataFrame的索引和列交集,只更新那些在df1中存在的行和列的位置,而且只会用df1中的非NaN值(这里df1没有NaN)去替换df的值,完全符合你的需求。

替换后的效果示例

执行任意一种方法后,df的A6、A7行会变成这样:

3a    4b    5c    6d
A6   12   1.0   2.0   3.0
A7  -32   3.0   4.0   5.0

其他行的内容不会受到影响。

内容的提问来源于stack exchange,提问作者TRex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 18:07:36