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

使用Pandas追加Excel数据时Sales列数据误入Item列的问题咨询

解决Sales列数据错误映射到Item列的问题

你的核心问题出在读取的Excel表列名和目标DataFrame的列名不匹配,导致追加数据时出现错位。读取的工作表第一列叫Sales,但目标DataFrame需要的对应列是Item,pandas按列名匹配时找不到对应项,就会出现数据错位或错误映射的情况。下面是具体的解决步骤:

步骤1:重命名读取的DataFrame列

首先把读取到的reading_book1中的Sales列重命名为Item,让它和目标DataFrame的列名完全对应:

reading_book1 = pd.read_excel(file, sheet_name="1-Rollout", skiprows=restvalue).iloc[:10]
# 重命名Sales列为Item,对齐目标列名
reading_book1 = reading_book1.rename(columns={'Sales': 'Item'})

步骤2:强制对齐列顺序(可选但推荐)

为了避免因列顺序不一致导致的数据错位,可以让读取的DataFrame严格遵循目标DataFrame的列顺序,缺失的列自动填充空值:

# 获取目标DataFrame的列顺序
target_columns = RestDataframe.columns
# 按目标列顺序重新排列,缺失列补空值
reading_book1 = reading_book1.reindex(columns=target_columns, fill_value=None)

步骤3:修正数据合并的写法

你之前把reading_book1放到列表里再追加的写法没必要,而且pandas的append()方法已经在1.4.0版本被弃用,推荐用pd.concat()来合并数据,更灵活清晰:

# 替换原来的append步骤,用concat合并多个DataFrame
RestDataframe = pd.concat([RestDataframe, AllFields, reading_book1], ignore_index=True)

完整修改后的代码示例

# 读取数据并重命名关键列
reading_book1 = pd.read_excel(file, sheet_name="1-Rollout", skiprows=restvalue).iloc[:10]
reading_book1 = reading_book1.rename(columns={'Sales': 'Item'})

# 对齐目标列顺序
target_columns = RestDataframe.columns
reading_book1 = reading_book1.reindex(columns=target_columns, fill_value=None)

# 合并数据到RestDataframe
RestDataframe = pd.concat([RestDataframe, AllFields, reading_book1], ignore_index=True)

# 填充其他固定列数据
RestDataframe['Project'] = read_ProjectNumber
RestDataframe['Full Project'] = read_fullProject
RestDataframe['Sponsor'] = read_Sponsor
RestDataframe['Round'] = read_round
RestDataframe['Project Step'] = read_projectstep
RestDataframe['Market'] = "Rest of the World Market"

# 合并到最终DataFrame
FinalDataframe = pd.concat([FinalDataframe, CADataframe, RestDataframe], ignore_index=True)

出错原因复盘

  • 列名不匹配是核心:读取的Sales列和目标的Item列名称不一致,pandas无法自动关联,导致数据错位到其他列。
  • append()方法已被弃用:官方推荐用pd.concat()替代,它在处理多DataFrame合并、索引重置等场景下更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:43:36