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

如何将DataFrame最后一行填充至另一DataFrame对应空列?

问题:将df2最后一行数据填充到df1指定空列

用户尝试用.update()方法将df2的最后一行数据填充到df1的q、w、e空列,但未达到预期效果,需要正确实现方式。

原始代码

import pandas as pd

d1 = {
        'a': [10],
        'b': [20],
        'c': [30],
        'q': "",
        'w': "",
        'e': ""
        }

df1 = pd.DataFrame(d1)
print(df1)

d2 = {
        'q': [7,40],
        'w': [8,50],
        'e': [9,60]
        }

df2 = pd.DataFrame(d2)
print(df2)

last_row = df2.tail(1)
print(last_row)

预期结果

result = {
    'a': [10],
    'b': [20],
    'c': [30],
    'q': [40],
    'w': [50],
    'e': [60]
}

df_result = pd.DataFrame(result)
print(df_result)

原因分析

.update()方法未生效的核心原因:

  1. df1中q、w、e列的空值是字符串空值"",而非pandas识别的缺失值(如NaN),.update()仅会替换缺失值;
  2. df2最后一行的索引是1,而df1的索引是0,索引不匹配导致无法对应替换。

正确实现方法

方法1:直接列赋值(最简单高效)

提取df2最后一行的数值,直接赋值给df1的对应列:

import pandas as pd

d1 = {
        'a': [10],
        'b': [20],
        'c': [30],
        'q': "",
        'w': "",
        'e': ""
        }
df1 = pd.DataFrame(d1)

d2 = {
        'q': [7,40],
        'w': [8,50],
        'e': [9,60]
        }
df2 = pd.DataFrame(d2)

# 提取最后一行转为Series,再转成二维数组匹配df1的行数
last_row_vals = df2.iloc[-1].values.reshape(1, -1)
df1[['q', 'w', 'e']] = last_row_vals

print(df1)

方法2:修正索引与缺失值后使用.update()

如果坚持使用.update(),需要先统一索引并将空字符串转为缺失值:

import pandas as pd

d1 = {
        'a': [10],
        'b': [20],
        'c': [30],
        'q': "",
        'w': "",
        'e': ""
        }
df1 = pd.DataFrame(d1)

d2 = {
        'q': [7,40],
        'w': [8,50],
        'e': [9,60]
        }
df2 = pd.DataFrame(d2)

# 将df1的空字符串转为pandas缺失值
df1[['q', 'w', 'e']] = df1[['q', 'w', 'e']].replace("", pd.NA)
# 重置df2最后一行的索引,与df1保持一致
last_row = df2.tail(1).reset_index(drop=True)
# 执行更新
df1.update(last_row)
# 将列转回整数类型
df1[['q', 'w', 'e']] = df1[['q', 'w', 'e']].astype(int)

print(df1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:17:26