合并2个具有相同索引的数据框

时间:2020-07-13 11:16:41

标签: python pandas

我有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列),因为日期,时间是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'),

我的第二个DataFrame:

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个表中。称为“价格”的其他行将添加到第一个数据框中。日期时间索引是合并它们的关键。

1 个答案:

答案 0 :(得分:0)

使用合并尝试以下操作

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