【问题标题】:Combine 2 dataframes with same index合并 2 个具有相同索引的数据帧
【发布时间】:2020-11-02 13:57:04
【问题描述】:

我有 2 个数据框:

df1:

Date,      Time            Ln1        Ln2        Ln3
01.01.2020 0:00:00   274.18654  314.25631  238.30059
           1:00:00   274.25214  314.30739  238.32860
           2:00:00   274.31775  314.35846  238.35662
           3:00:00   274.38336  314.40953  238.38464
...                        ...        ...        ...
30.11.2020 20:00:00  238.25576  221.34272   16.99407
           21:00:00  238.32069  221.39448   17.00249
           22:00:00  238.38563  221.44625   17.01092
           23:00:00  238.45056  221.49801   17.01937
01.12.2020 0:00:00   238.51550  221.54977   17.02784

它有 3 列(不是 5 列!),因为 Date, Time 是 MultiIndex:

MultiIndex([(     'Date,',     'Time'),
            ('01.01.2020',  '0:00:00'),
            ('01.01.2020',  '1:00:00'),
            ('01.01.2020',  '2:00:00'),
            ('01.01.2020',  '3:00:00'),

我的第二个数据框:

df2:

                  dt       price
0     20200103100000  256.086667
1     20200103110000  256.526667
2     20200103120000  257.386667
3     20200103130000  256.703333
4     20200103140000  255.320000

顺便说一句,我知道如何使 df 列成为索引(可能有用,也可能没有用):

df_candles.set_index("dt", inplace = True)

我的问题: 如何组合这两个 DataFrame? 当我这样做时:

pd = (df1, df1)

它确实结合了它们,但创建了 2 个不同的表:

Date,      Time            Ln1        Ln2        Ln3
01.01.2020 0:00:00   274.18654  314.25631  238.30059
           1:00:00   274.25214  314.30739  238.32860
           2:00:00   274.31775  314.35846  238.35662
           3:00:00   274.38336  314.40953  238.38464
...                        ...        ...        ...
30.11.2020 20:00:00  238.25576  221.34272   16.99407
           21:00:00  238.32069  221.39448   17.00249
           22:00:00  238.38563  221.44625   17.01092
           23:00:00  238.45056  221.49801   17.01937
01.12.2020 0:00:00   238.51550  221.54977   17.02784

                  dt       price
0     20200103100000  256.086667
1     20200103110000  256.526667
2     20200103120000  257.386667
3     20200103130000  256.703333
4     20200103140000  255.320000

但我想将它们合并到 1 个表中。名为“价格”的附加行将添加到第一个数据框中。日期时间索引是合并它们的关键。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用合并尝试如下

    df1.merge(df2, left_on='lkey', right_on='Ln3')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 2020-02-05
      • 2015-02-10
      • 2020-01-06
      • 2017-11-29
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多