使用pandas.concat拼接13个CSV文件未按列拼接的问题排查
错误原因
pd.concat()默认axis=0,是沿行方向纵向堆叠数据,并非你需要的按列横向拼接。- 你看到的对角线有效值分布,本质是不同csv的列名互不重复时,按行拼接会自动对齐列名,每个csv的内容只会填充到自身对应的列下,其余列填充空值,最终就呈现对角线状的有效值分布。
- 额外问题:你要拼接13个文件,但原代码的
range(1,13)只会生成1到12的整数,只能读取12个csv。
修复代码
import pandas as pd dfs_AIC = [] # 调整range上限到14,覆盖1-13共13个文件 for filenum in range(1,14): df = pd.read_csv(f'AIC_{filenum}.csv') # 如果各csv行数一致但索引不匹配,可取消下一行注释重置索引避免拼接错位 # df = df.reset_index(drop=True) dfs_AIC.append(df) # 指定axis=1按列拼接,index=False避免输出多余的索引列 pd.concat(dfs_AIC, axis=1).to_csv("AIC_Concatinate_1-13.csv", index=False)
内容的提问来源于stack exchange,提问作者joshal bansal
相关产品推荐
相关产品推荐

