首页 > 解决方案 > 将两个具有相似列值的数据框合并在一起

问题描述

我有两个 dfs,一个比另一个长,但它们都有一个包含相同值的列。

这是我的第一个 df,称为天气:

        DATE    AWND    PRCP    SNOW    WT01    WT02    TAVG
 0  2017-01-01  5.59    0.00    0.0     NaN     NaN     46
 1  2017-01-02  9.17    0.21    0.0     1.0     NaN     40
 2  2017-01-03  10.74   0.58    0.0     1.0     NaN     42
 3  2017-01-04  8.05    0.00    0.0     1.0     NaN     47
 4  2017-01-05  7.83    0.00    0.0     NaN     NaN     34

这是我的第二个 df,称为自行车:

    DATE    LENGTH      ID      AMOUNT  
 0  2017-01-01  3       1       5       
 1  2017-01-01  6       2       10  
 2  2017-01-02  9       3       100     
 3  2017-01-02  12      4       250 
 4  2017-01-03  15      5       45  

所以我希望我的 df 根据共享的 DATE 列从天气 df 中复制所有行并将其复制过来。

  DATE    LENGTH      ID      AMOUNT  AWND   SNOW  TAVG
0  2017-01-01  3       1       5       5.59  0     46
1  2017-01-01  6       2       10      5.59  0     46
2  2017-01-02  9       3       100     9.17  0     40
3  2017-01-02  12      4       250     9.17  0     40
4  2017-01-03  15      5       45      10.74 0     42

请帮忙!也许可以使用某种类型的连接。

标签: pythonpandasdataframe

解决方案


利用merge

In [93]: bike.merge(weather[['DATE', 'AWND', 'SNOW', 'TAVG']], on='DATE')
Out[93]:
         DATE  LENGTH  ID  AMOUNT   AWND  SNOW  TAVG
0  2017-01-01       3   1       5   5.59   0.0    46
1  2017-01-01       6   2      10   5.59   0.0    46
2  2017-01-02       9   3     100   9.17   0.0    40
3  2017-01-02      12   4     250   9.17   0.0    40
4  2017-01-03      15   5      45  10.74   0.0    42

推荐阅读