2016-11-16 7 views
0

Ich habe einen Datenrahmen mit einem normalen Datumsbereich von beispielsweise einem Monat. Dann habe ich einen anderen Datenrahmen mit ein paar Daten desselben Monats und einen Wert für diese Daten. Ich möchte diese Werte an den ersten Datenrahmen gleichen Daten weitergeben:Hinzufügen von Werten, die mit Daten im Datenrahmen verknüpft sind

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 
… 

Vielen Dank!

+0

Können Sie einen Versuch starten? – wwii

Antwort

0

Sie map oder merge verwenden können, können on omited werden, wenn es keine anderen gleichen Spaltennamen in beiden DataFrames als Joinspalten sind (wenn nicht on='date' verwenden):

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 du schlägst mich auf diese :) so gelöscht ... auch 'df1.merge (df2, how =" links ", on =" date ")' mit dem 'on' nur für den fall es gibt mehr cols in df1, df2. –

+0

Danke, ich füge es zur Antwort hinzu. – jezrael

Verwandte Themen