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

使用respid索引更新DataFrame后respid列丢失问题排查与修正

问题原因与修复方案

原因

你写的df1.reset_index()没把结果存回df1,也没加inplace=True参数。这就导致df1里的respid依然是索引而非普通列,后续导出Excel时设置了index=False,自然就把respid排除在输出内容之外了。

修复代码

import pandas as pd

# 前提:df1和df2已正确定义
df1.set_index(['respid'], inplace=True)
df1.update(df2.set_index(['respid']))
# 两种修复方式二选一即可
df1 = df1.reset_index()  # 方式1:将重置索引后的新DataFrame赋值给df1
# 或者 df1.reset_index(inplace=True)  # 方式2:原地修改df1的索引结构

with pd.ExcelWriter("path" + ".xlsx") as writer:
    df1.to_excel(writer, sheet_name='sheet2', index=False)

额外说明

  • reset_index()默认返回一个新的DataFrame,不会修改原DataFrame的结构,必须手动赋值或使用inplace=True才能改变原df的状态。
  • 两种修复方式效果完全一致,可根据个人代码习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:10:31