如何合并两个多索引数据框?

时间:2020-06-16 09:42:07

标签: python pandas dataframe merge multi-index

我的数据帧1如下所示:

df1

我的第二个数据框如下所示:

df2

因此,第一个数据框使用id和date作为多索引,而第二个数据框使用date和port作为多索引。

我首先通过两个数据帧的reset_index合并,然后通过pd.merge(df1,df2,how='outer',on=['date','port'])来合并两个数据帧,以实现以下结构: merged

最后,我只是使用id和date设置了这个最终结构的索引并按id排序

我的问题:有没有一种方法可以合并两个数据框而无需重置其多索引,以实现我想要的id和date仍然是多索引的结构?

1 个答案:

答案 0 :(得分:0)

您可以使用此:

new_df = df1.merge(
        df2, how="outer", left_index=True, right_index=True
    )

但是这将为您提供包含端口的两列,因为df1port作为列,而df2以其索引。为了解决这个问题,您可以使用以下命令删除列端口:

new_df.drop(['port'], axis=1, inplace=True)