【发布时间】:2017-06-24 16:41:04
【问题描述】:
我想合并 df_1 和 df_2 以创建 df_merged,但我想合并具有共同点的列,而不是创建 A_x 和 A_y 之类的列。
index = [np.array(['foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two',])]
columns = ["A", "B"]
df_1 = pd.DataFrame(np.random.randn(4, 2), index=index, columns=columns)
index = [np.array(['bar', 'bar', 'baz', 'baz',]),
np.array(['one', 'two', 'one', 'two',])]
columns = ["A", "B"]
df_2 = pd.DataFrame(np.random.randn(4, 2), index=index, columns=columns)
df_merge = pd.merge(df_1, df_2, left_index=True, right_index=True, how='outer')
print df_1
print df_2
print df_merge
df_1
A B
foo one 2.082229 1.575985
two -0.805592 0.444195
qux one 0.368874 0.253556
two 1.017632 -0.471978
df_2
A B
bar one 0.134571 0.415209
two -1.288889 -0.144284
baz one -0.117345 -0.095292
two -0.256708 -0.682542
df_merge - 当前输出
A_x B_x A_y B_y
bar one NaN NaN 0.134571 0.415209
two NaN NaN -1.288889 -0.144284
baz one NaN NaN -0.117345 -0.095292
two NaN NaN -0.256708 -0.682542
foo one 2.082229 1.575985 NaN NaN
two -0.805592 0.444195 NaN NaN
qux one 0.368874 0.253556 NaN NaN
two 1.017632 -0.471978 NaN NaN
df_merge - 需要
A B
bar one 0.134571 0.415209
two -1.288889 -0.144284
baz one -0.117345 -0.095292
two -0.256708 -0.682542
foo one 2.082229 1.575985
two -0.805592 0.444195
qux one 0.368874 0.253556
two 1.017632 -0.471978
【问题讨论】:
标签: python pandas dataframe merge