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

Pandas向DataFrame添加行时列重复问题求助

问题排查与解决

列重复的核心原因

  • 循环里的拼接对象错误:你每次都用self.loadedDB和当前行拼接,而非基于已更新的DB累加。这会导致每循环一次,就把self.loadedDB的全部内容重复加入一次,次数多了必然出现列重复、数据冗余的问题。
  • 初始化的空DB未被使用:你定义了指定列的空DataFrame,但循环中直接用self.loadedDB覆盖了初始值,完全浪费了之前的定义。

修正后的代码

# 初始化指定列的空DataFrame
DB = pd.DataFrame(columns=['MAN','MOD','YEAR','TYPE']) 
# 先将已有数据合并到初始DB中(如果self.loadedDB有数据的话)
DB = pd.concat([DB, self.loadedDB])
# 循环逐行添加数据
for _, row in other_dataFrame.iterrows():
    # 基于当前的DB拼接新行,而非重复使用self.loadedDB
    DB = pd.concat([DB, row.to_frame().T], ignore_index=True)

更高效的替代方案(避免循环)

Pandas原生不适合逐行循环操作,数据量大时效率极低。直接批量合并是更优选择:

# 直接将other_dataFrame的目标列与self.loadedDB合并
DB = pd.concat([self.loadedDB, other_dataFrame[['MAN','MOD','YEAR','TYPE']]], ignore_index=True)
# 确保列顺序与预期一致
DB = DB.reindex(columns=['MAN','MOD','YEAR','TYPE'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:55:27