在两列上合并Pandas Dataframes

时间:2016-04-27 22:30:37

标签: python pandas dataframe merge

我正在尝试使用pandas合并两个数据框。

lu_3
Site    SurveyDate  TripDate
003L    1990-09-28  1990-06-10
065r    2008-04-03  2008-03-28

data
Site    SurveyDate  
003L    1990-09-28  
065r    2008-04-03  

我正在尝试合并lu_3以使用data填充TripDatedata已被子集化以便于阅读,但包含的列数多于显示的列数。两个数据框都使用Site作为索引。

我试过了:

tmp = data.merge(lu_3,left_index=True,right_index=True,how='left', on=['SurveyDate'])

但是这会为旅行日期返回NaT

检查数据类型会产生:

lu_3.dtypes
Out[111]: 
SurveyDate    datetime64[ns]
TripDate      datetime64[ns]
dtype: object

data.dtypes
Out[114]: 
SurveyDate        datetime64[ns]

修改

我已重置datalu_3上的指示,并尝试合并使用:

tmp = tmp_data.merge(lu_3,on=['Site','SurveyDate'], how='left').set_index('Site')

但我NaT TripDate的{​​{1}}仍然tmp

1 个答案:

答案 0 :(得分:0)

我认为您在合并索引

时不需要指定
tmp = data.merge(lu_3,left_index=True,right_index=True,how='left')

         SurveyDate_x SurveyDate_y    TripDate
Site                                      
003L   1990-09-28   1990-09-28  1990-06-10
065r   2008-04-03   2008-04-03  2008-03-28