Python:如何基于列联接文件

时间:2018-08-19 18:24:20

标签: python pandas

我必须基于通用列(年,月,日)加入2个文件。输入文件具有标题,输出文件也具有标题。第一个文件具有温度信息(例如):

year month day min-temp mav-temp
2017 12    13  13       25
2017 12    16  25       32
2017 12    25  34       56

第二个文件具有信息沉淀(例如)

year month day precipitation snow snow-cover
2018  7    6   0.00          0.0  0
2017  12   13  0.04          0.0  0
2017  12   16  0.4           0.04 1

我的预期输出应为(按日期异步排序,如果找不到值,则为空白):

year month day min-temp mav-temp precipitation snow snow-cover
2017 12    13  13       25       0.04          0.0  0
2017 12    16  25       32       0.4           0.04 1
2017 12    25  34       56                 
2018  7    6                     0.00          0.0  0

我可以在Python中获得帮助吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用mergesort_valuesfillna

new_df = (df1.merge(df2, on=['year','month','day'], how='outer')
          .sort_values(['year','month','day'])
          .fillna(''))

>>> new_df 
   year  month  day min-temp mav-temp precipitation  snow snow-cover
0  2017     12   13       13       25          0.04     0          0
1  2017     12   16       25       32           0.4  0.04          1
2  2017     12   25       34       56                               
3  2018      7    6                               0     0          0