如何将多个pandas dataframe的指定列追加合并到主dataframe中
问题修复说明
你原来的代码存在两个核心错误:
append是行追加方法,无法实现新增列的需求,且该方法在pandas 2.0+版本已被废弃df.iloc[1]取的是第二行数据,而非你需要的第二列,取第二列的正确语法是df.iloc[:, 1]
正确实现代码
自动按Col2/Col3命名新列
如果不需要保留子表第二列的原有列名,按序号自动生成新列名,可以用下面的写法:
# 初始化新列起始序号,已有Col1所以从2开始 new_col_num = 2 for file in files: df = pd.read_csv(file, index_col=False) # 校验子表行数和主表一致,避免赋值报错 if len(df) != len(df_main): print(f"文件{file}行数不匹配,跳过处理") continue # 取出第二列追加到主表 df_main[f"Col{new_col_num}"] = df.iloc[:, 1] new_col_num += 1
保留子表第二列原有列名
如果需要保留子表第二列的原生列名,修改赋值语句的列名即可:
for file in files: df = pd.read_csv(file, index_col=False) if len(df) != len(df_main): print(f"文件{file}行数不匹配,跳过处理") continue # 直接用子表第二列的原有列名作为主表新列名 df_main[df.columns[1]] = df.iloc[:, 1]
内容的提问来源于stack exchange,提问作者birdman41323
相关产品推荐
相关产品推荐

