我试图在第一层上连接两个多索引数据帧。我尝试过其他一些解决方案,比如this one,但对我来说不太管用。我希望在某种程度上是一个外部连接,但我也希望匹配索引中的值被df2
中的值替换。否则,关于如何在第一级上轻松执行outer
合并的一些有用提示也将非常有用。你知道吗
设置:
dates1 = pd.to_datetime(['1/11/2016','5/11/2016','9/11/2016'])
dates2 = pd.to_datetime(['1/11/2016','4/11/2016','8/11/2016','9/11/2016'])
v1 = pd.MultiIndex.from_arrays([[112,112,112], dates1])
v2 = pd.MultiIndex.from_arrays([[113,113,113, 113], dates2])
df1 = pd.DataFrame({'active1':[3,3,4],'active2':[5,1,10]}, index = v1)
df2 = pd.DataFrame({'active1':[1,22,12,5],'active2':[5,1,12,13]}, index = v2)
print(df1)
active1 active2
112 2016-01-11 3 5
2016-05-11 3 1
2016-09-11 4 10
print(df2)
active1 active2
113 2016-01-11 1 5
2016-04-11 22 1
2016-08-11 12 12
2016-09-11 5 13
预期产量:
active1 active2
112 2016-01-11 1 5
2016-04-11 22 1
2016-05-11 3 1
2016-08-11 12 12
2016-09-11 5 13
由于级别0的值是唯一的,请忽略它,使用
.combine_first
合并另一个索引上的DataFrames
,匹配时优先考虑df2
中的值,然后将索引从df1
添加回末尾输出
如果您的
DataFrames
中有null
值,并且您不希望df2
中的nulls
被df1
更新,那么您可以首先用伪值替换它们(如999999
),然后在合并后用NaN
替换回来。你知道吗相关问题 更多 >
编程相关推荐