Python 带熊猫数据帧的内部连接循环,用于各种可能存在或不存在的组合
当会话中存在多个数据帧的各种组合时,我需要一种智能的方式将多个数据帧连接在一起。通过连接完成事情的顺序并不重要 在这个简单的示例中,我有4个数据帧,每个数据帧的组合在我的环境中可能存在,也可能不存在 例如,每个逗号分隔表示代表df1、df2、df3、df4的数据帧。如果有帮助的话,我的数据帧总是有类似的拼写 我的数据帧将始终连接到数据帧中的“ID”字段 示例场景设置(请记住,这有许多排列): 下一次我就可以用df1和df4…等等 如何设置数据帧的进一步示例:Python 带熊猫数据帧的内部连接循环,用于各种可能存在或不存在的组合,python,loops,pandas,merge,Python,Loops,Pandas,Merge,当会话中存在多个数据帧的各种组合时,我需要一种智能的方式将多个数据帧连接在一起。通过连接完成事情的顺序并不重要 在这个简单的示例中,我有4个数据帧,每个数据帧的组合在我的环境中可能存在,也可能不存在 例如,每个逗号分隔表示代表df1、df2、df3、df4的数据帧。如果有帮助的话,我的数据帧总是有类似的拼写 我的数据帧将始终连接到数据帧中的“ID”字段 示例场景设置(请记住,这有许多排列): 下一次我就可以用df1和df4…等等 如何设置数据帧的进一步示例: 存在,存在,存在,存在 不,不,不
- 存在,存在,存在,存在
- 不,不,不,存在
- 不,不,存在,存在
- 不,存在,存在,存在
- 等等。。。。我相信是4!x3!组合?将始终至少有一个数据帧,在该数据帧中不会尝试任何联接
l = [df1,df3,df4]
pd.concat([i.set_index('ID') for i in l], axis=1)
输出:
Score1 Score3 Score4
jack 1.0 111.0 1111.0
jill 3.0 NaN NaN
katy NaN 333.0 3333.0
mary 2.0 222.0 2222.0
Score1 Score3 Score4
ID
jack 1 111 1111
mary 2 222 2222
或者正如EFT所建议的:
print(pd.concat([i.set_index('ID') for i in l], axis=1, join='inner'))
输出:
Score1 Score3 Score4
jack 1.0 111.0 1111.0
jill 3.0 NaN NaN
katy NaN 333.0 3333.0
mary 2.0 222.0 2222.0
Score1 Score3 Score4
ID
jack 1 111 1111
mary 2 222 2222
要获得一个内部连接,只需将参数
join='internal'
添加到这个答案中的pd.concat
。