【问题标题】:Intersect Two DataFrames In Pandas Time Series在 Pandas 时间序列中相交两个 DataFrame
【发布时间】:2021-07-31 22:58:47
【问题描述】:

我有两个看起来类似于下面表示的数据框。

df1
            id          date        x  w
    0       71896517    2020-07-25  1  5
    1       71896517    2020-09-14  2  3
    2       72837666    2020-09-21  1  9
    3       72848188    2020-11-03  1  1


df2
            id          date         x  y  z
    0       71896517    2020-07-25   1  1  6
    1       71896589    2020-09-14   2  2  8
    2       72837949    2020-09-21   1  1  3
    3       72848188    2020-11-03   1  1  2

我想通过与上面的两个数据帧相交来实现一个数据帧,并实现类似于:

        id          date        x  w   y   z
0       71896517    2020-07-25  1  5   1   6
1       71896517    2020-09-14  2  3   NaN NaN
2       71896589    2020-09-14  2  NaN 2   8
3       72837666    2020-09-21  1  9   NaN NaN
4       72837949    2020-09-21  1  NaN 1   3
5       72848188    2020-11-03  1  1   1   2

我几乎希望每个日期的每个 id 的信息都在同一行。我离开了 NaN,因为我认为这就是它的呈现方式,但是我会用零填充它们。 我怎样才能做到这一点?

【问题讨论】:

    标签: python pandas dataframe numpy time-series


    【解决方案1】:

    让我们尝试外部合并:

    df3 = df1.merge(df2, how='outer').sort_values('date').reset_index(drop=True)
    print(df3)
    

    df3:

             id        date  x    w    y    z
    0  71896517  2020-07-25  1  5.0  1.0  6.0
    1  71896517  2020-09-14  2  3.0  NaN  NaN
    2  71896589  2020-09-14  2  NaN  2.0  8.0
    3  72837666  2020-09-21  1  9.0  NaN  NaN
    4  72837949  2020-09-21  1  NaN  1.0  3.0
    5  72848188  2020-11-03  1  1.0  1.0  2.0
    

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 2019-11-27
      • 2019-01-12
      • 1970-01-01
      • 2017-09-28
      • 2016-07-08
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      相关资源
      最近更新 更多