gpt4 book ai didi

python - 如何在两个数据框中查找相同的列名并组合匹配的列

转载 作者:太空狗 更新时间:2023-10-29 21:49:16 30 4
gpt4 key购买 nike

我想遍历两个数据框的列名,找到具有相同列名的列,并将它们组合起来创建一个新的数据框。

我试图在 for 循环中编写一个 if-else 条件,但它不起作用。

具体来说,我有两个这样的数据框:

df1 = pd.DataFrame({'A': {'2019Q1': 1, '2019Q2': 2, '2019Q3': 3},
'B': {'2019Q1': 1, '2019Q2': 3, '2019Q3': 5},
'C': {'2019Q1': 2, '2019Q2': 4, '2019Q3': 6}})

df2 = pd.DataFrame({'A': {'2019Q1': 4, '2019Q2': 5, '2019Q3': 6},
'B': {'2019Q1': 1.5, '2019Q2': 3.3, '2019Q3': 5.6},
'C': {'2019Q1': 2.3, '2019Q2': 4.8, '2019Q3': 6.7}})

我想要像下面这样的输出-

对于 A,输出=

pd.DataFrame({'df1': {'2019Q1': 1, '2019Q2': 2, '2019Q3': 3},
'df2': {'2019Q1': 4, '2019Q2': 5, '2019Q3': 6})

对于 B,输出=

pd.DataFrame({'df1': {'2019Q1': 1, '2019Q2': 3, '2019Q3': 5},
'df2': {'2019Q1': 1.5, '2019Q2': 3.3, '2019Q3': 5.6})

对于 C,输出=

pd.DataFrame({'df1': {'2019Q1': 2, '2019Q2': 4, '2019Q3': 6},
'df2': {'2019Q1': 2.3, '2019Q2': 4.8, '2019Q3': 6.7})

非常感谢您的帮助!

最佳答案

这是一种类似于@ALollz 的方法,但将 subdf 保存在多个索引数据框中

s = pd.concat([df1, df2], keys=['df1', 'df2']).unstack(0)
s.loc[:,'A']
Out[390]:
df1 df2
2019Q1 1 4
2019Q2 2 5
2019Q3 3 6

关于python - 如何在两个数据框中查找相同的列名并组合匹配的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57581882/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com