python - 合并列表中包含公共列的所有数据框
问题描述
我有一个数据框列表:
dfList= [df1,df2]
shape of df1 (100,3)
shape of df2 (100,3)
df1
a b c
1 2 4
1 2 3
1 2 6
1 3 9
df2
a b d
1 2 9
1 2 11
1 2 6
1 3 3
我想合并或连接列表中的所有数据框以获得以下最终数据框:
df_final
a b c d
1 2 4 9
1 2 3 11
1 2 6 6
1 3 9 3
我正在尝试以下代码:
df_final = pd.merge(left=dfList[0], right=dfList[1], how='inner')
但我想处理如果列表中有超过 2 个数据框的情况,例如dfList=[df1,df2,df3,df4]
.
解决方案
在这种情况下,我认为它会更容易使用pd.concat
,然后只需删除重复的列:
df_final = pd.concat(dfList,axis=1).reset_index(drop=True).T.drop_duplicates().T
基于给定输入数据的示例:
dfList = [df1,df2]
df_final = pd.concat(dfList,axis=1).reset_index(drop=True).T.drop_duplicates().T
print(df_final)
输出:
a b c d
0 1 2 4 9
1 1 2 3 11
2 1 2 6 6
3 1 3 9 3
推荐阅读
- javascript - 如何停止正则表达式与:在 bootstrapValidate 插件中冲突
- node.js - 在 Mongoose 模式中具有收藏夹和点赞系统的用户
- php - SQLSTATE[HY093] - 基本插入数据库
- java - 使用 Canvas 时出现黑屏
- awk - 如何仅输出正在运行的进程的用户
- php - cpanel上的laravel显示错误500
- django - 对于 django-storages 和 GCE,如何设置 GS_CREDENTIALS?
- python - Docker SDK for Python-如何保持容器不处于交互模式
- python - 无法正确导入聊天机器人及其语料库
- python - 通过 Django 表单传递数据