1
我有兩個DataFrames,第一個是我的主要df,第二個是我想用'更新'第一個。熊貓合併數據並覆蓋列
從本質上講,我有以下幾點:
In [205]: df1
Out[205]:
date total
0 04/10/2016 10
1 04/10/2016 20
2 04/10/2016 30
3 04/10/2016 40
4 04/10/2016 50
In [206]: df2
Out[206]:
date new
0 04/11/2016 1
1 04/11/2016 2
2 04/11/2016 3
當我合併,我得到兩個日期列。
In [207]: pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
Out[207]:
date_x total date_y new
0 04/10/2016 10 04/11/2016 1.0
1 04/10/2016 20 04/11/2016 2.0
2 04/10/2016 30 04/11/2016 3.0
3 04/10/2016 40 NaN NaN
4 04/10/2016 50 NaN NaN
反正是有,那我就可以覆蓋原來的date
列df1
?
現在,我會做:
In [209]: df3['date_x'].update(df3['date_y'])
In [210]: df3
Out[210]:
date_x total date_y new
0 04/11/2016 10 04/11/2016 1.0
1 04/11/2016 20 04/11/2016 2.0
2 04/11/2016 30 04/11/2016 3.0
3 04/10/2016 40 NaN NaN
4 04/10/2016 50 NaN NaN
,並嘗試刪除該date_y
但似乎並不十分有效。
我也嘗試過combine_first
,但是在某些情況下,這會給我帶來不希望的結果(即如果我的原始日期是空白的,並且我將一個新的日期結合到它)。
這不會覆蓋'df1'的日期,這是我們的目標在這裏 – NightHallow
如果是作爲然後'DF1 [一樣簡單'date'] = df ['date']'應該做,不是幫助嗎? – Abbas
對不起,我試過'pd.merge(df,df1,left_index = True,right_index = True,on ='date',how ='outer')',但是做了'pd.merge(df2,df1,left_index = True ,right_index = True,on ='date',how ='outer')'爲我工作。我沒有想過將第二個數據框作爲初始參數。 – NightHallow