我有一个数据框,其常规日期范围可以说是一个月。然后我有另一个数据框,其中包含同月的几个日期和这些日期的值。我想将这些值传递给第一个数据帧相同的日期:
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 :(得分:0)
您可以使用map
或merge
,如果on
中的其他列名与加入列中没有其他相同的列名,则可省略DataFrames
(如果不使用{{} 1}}):
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