2016-11-16 39 views
0

我有一個數據框,其日期範圍爲一個月。然後我有另一個數據框,其中包含同一個月的幾個日期和這些日期的值。我想將這些值傳遞給第一個數據幀的日期相同:在數據框中添加與日期鏈接的值

Dataframe with consecutive dates 
0 2016-11-01 
1 2016-11-02 
2 2016-11-03 
3 2016-11-04 
4 2016-11-05 
5 2016-11-06 
… 

Dataframe with just some dates and values 
0 2016-11-02 55 
1 2016-11-04 34 
2 2016-11-06 21 
… 

Dataframe I am trying to get 
0 2016-11-01 
1 2016-11-02 55 
2 2016-11-03 
3 2016-11-04 34 
4 2016-11-05 
5 2016-11-06 21 
… 

謝謝!

+0

你能做一次嘗試? – wwii

回答

0

您可以使用mapmergeon可以被遺漏的,如果有兩個DataFrames沒有其他相同的列名作爲連接列(如果不使用on='date'):

print (df1) 
     date 
0 2016-11-01 
1 2016-11-02 
2 2016-11-03 
3 2016-11-04 
4 2016-11-05 
5 2016-11-06 

print (df2) 
     date val 
0 2016-11-02 55 
1 2016-11-04 34 
2 2016-11-06 21 

df1['val'] = df1.date.map(df2.set_index('date')['val']) 
print (df1) 
     date val 
0 2016-11-01 NaN 
1 2016-11-02 55.0 
2 2016-11-03 NaN 
3 2016-11-04 34.0 
4 2016-11-05 NaN 
5 2016-11-06 21.0 

df = pd.merge(df1, df2, how='left') 
print (df) 
     date val 
0 2016-11-01 NaN 
1 2016-11-02 55.0 
2 2016-11-03 NaN 
3 2016-11-04 34.0 
4 2016-11-05 NaN 
5 2016-11-06 21.0 
+1

bah you beat me on this :)如此刪除...還有''df1.merge(df2,how =「left」,on =「date」)'帶'on',以防萬一df1中有更多cols, DF2。 –

+0

謝謝,我添加它來回答。 – jezrael