我有一个包含数据框的字典,如下所示:
我希望您能够使用for循环迭代,按照它们的索引将它们“inner”合并。这相当于执行以下操作:
结果将会如下所示。
但是这给了我一个荒谬的结果。
感谢您的帮助。
A = pd.DataFrame([[2, 1], [2, 1], [2, 1]], columns=['A', 'B'], index = [1, 2, 3])
B = pd.DataFrame([[1, 1], [2, 2], [3, 3]], columns=['A', 'B'], index = [1, 2, 3])
C = pd.DataFrame([[1, 2], [1, 2], [1, 2]], columns=['A', 'B'], index = [1, 2, 3])
df_all = {'df1': A, 'df2': B, 'df3': C}
我希望您能够使用for循环迭代,按照它们的索引将它们“inner”合并。这相当于执行以下操作:
df4 = pd.merge(A, B, left_index=True, right_index=True, how='inner')
df5 = pd.merge(df4, C, left_index=True, right_index=True, how='inner')
结果将会如下所示。
A_x B_x A_y B_y A B
1 2 1 1 1 1 2
2 2 1 2 2 1 2
3 2 1 3 3 1 2
我尝试了一些傻瓜式的操作,例如:
for key, value in df_all.iteritems():
df = pd.merge(value, value, left_index=True, right_index=True, how='inner')
但是这给了我一个荒谬的结果。
感谢您的帮助。
pd.merge(A, A, ...)
,你就会明白为什么你的结果不起作用了。 - chrisaycock