我有一个索引,其中包含我希望在结果数据帧(df3
)中显示的所有值:
df1 = pd.DataFrame(['aa', 'bb', 'cc', 'dd', 'ee']).set_index(0)
------------------------------------
Empty DataFrame
Columns: []
Index: [aa, bb, cc, dd, ee]
我正在尝试用另一个df(df2
)连接此索引:
df2 = pd.DataFrame([['bb', 'xxx', 777, 888], ['dd', 'yyy', 999, 0]]).set_index([0, 1])
------------------------------------
2 3
0 1
bb xxx 777 888
dd yyy 999 0
我可以用merge
来实现这一点,但速度很慢(这是我想要的最终结果,不使用merge):
df3 = df1.reset_index().merge(df2.reset_index(), how='left').set_index([0, 1])
------------------------------------
2 3
0 1
aa NaN NaN NaN
bb xxx 777.0 888.0
cc NaN NaN NaN
dd yyy 999.0 0.0
ee NaN NaN NaN
我想使用join
,但是我无法合并索引,即使我指定了how='outer'
应该保留这两个索引,df1索引也会被删除
df3 = df1.join(df2, how='outer')
------------------------------------
2 3
0 1
bb xxx 777 888
dd yyy 999 0
关于如何使用join或concat或任何比merge更快的方法组合数据帧的想法
目前没有回答
相关问题 更多 >
编程相关推荐