python - 如何在 python 中使用 pandas 对多个 DataFrame 执行外部合并
问题描述
我有 125 个列名相同的 csv 文件。我想合并所有这些(on=column)。我尝试了以下代码,但它不起作用(似乎它在无限循环中运行)。
filelist = glob.glob('*.csv')
dflist = []
for filename in filelist:
df = pd.read_csv(filename)
dflist.append(df)
df_2 = reduce(lambda left,right: pd.merge(left,right,on=['gene_id'],how='outer'), dflist)
我不能像 df_new = pd.concat([df1, df2, df3, df4], axis=1)) 那样使用 pd.concat,因为 csv 文件的行长不同。
还有其他方法可以对多个文件执行 pd.merge 吗?
提前致谢!!
解决方案
试试这个代码。
filelist = glob.glob('*.csv')
merged_df = pd.read_csv(filelist[0])
for filename in filelist:
df = pd.read_csv(filename)
merged_df = pd.merge(merged_df, df, on = ['gene_id'], how = 'outer')
推荐阅读
- python - 从云上托管的 Python 访问 MySQL DATABASE
- python - pip 通过 HTTPS 安装具有私有依赖项的私有存储库
- javascript - Javascript API 不适用于 Carbon Fields?
- firebase - Firebase Firestore Emulator 导入不会触发 Cloud Function 执行
- python - 通过 URL 从 Sagemaker 访问存储在 S3 上的大型 BDF 和 EDF 文件,并使用 mne 库读取它们
- python - 传递多个列列表来索引数据帧(不使用 loc/iloc)
- angular - 热图渲染问题
- javascript - 如何在 React.js 的 Ag-Grid 中居中对齐表格
- javascript - 隐藏 iframe 中的链接
- vb.net - 在 VB.Net 中导出到 Word 中有关阿拉伯语和波斯语字体名称、样式和大小的问题