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

如何在Pandas中将非对齐列的值追加到现有列?

解决Pandas中把DataFrame的C列值填充到A列对应空值位置的问题

你的问题出在误用了append()方法——append()是用来将另一个Series/DF追加到当前Series末尾生成新的长Series,但当你把这个长Series赋值回原DF的a列时,原DF只有5行,只会匹配索引0-4的内容,所以根本没修改到目标位置。

正确的解决方法

你需要做的是将A列的空值位置用C列对应位置的值填充,而不是追加,有两种简单的实现方式:

方法1:使用fillna()直接填充

fillna()可以指定用另一列的值填充当前列的空值,代码如下:

import pandas as pd

d = {'a':[1,2,3,None, None], 'b':[7,8,9, None, None], 'c':[None, None, None, 5, 6]}
df = pd.DataFrame(d)

df['a'] = df['a'].fillna(df['c'])

print(df)

方法2:通过索引定位赋值

先筛选出A列为空的行,再把C列对应的值赋过去:

import pandas as pd

d = {'a':[1,2,3,None, None], 'b':[7,8,9, None, None], 'c':[None, None, None, 5, 6]}
df = pd.DataFrame(d)

# 定位a列为空的行,将c列对应的值赋值给a列
df.loc[df['a'].isna(), 'a'] = df['c']

print(df)

运行结果

两种方法都会得到你期望的输出:

a    b    c
0  1.0  7.0  NaN
1  2.0  8.0  NaN
2  3.0  9.0  NaN
3  5.0  NaN  5.0
4  6.0  NaN  6.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:12:11