2016-11-16 12 views
0

データフレームは、通常の日付範囲を1ヶ月とします。それから私は同じ月のいくつかの日付とそれらの日付の値を持つ別のデータフレームを持っています。これらの値を同じ日付に最初のデータフレームに渡したい:データフレーム内の日付にリンクされた値の追加

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

両方DataFramesには、他の同じ列名が存在しない場合(on='date'を使用しない場合)あなたが列を結ぶようmapまたはmergeonは属性を省略してもかまいませ使用することができます。

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あなたは私がこのことで私を打ち負かすので、df1.merge(df2、how = "left"、on = "date") ' df2。 –

+0

ありがとう、私はそれを答えに加える。 – jezrael

関連する問題