Объедините 2 фрейма данных с одинаковым индексом - PullRequest
0 голосов
/ 13 июля 2020

У меня есть 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'),

Мой второй 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)

Мой вопрос: как объединить эти два DataFrames? Когда я это делаю:

pd = (df1, 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

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

Но я хочу объединить их в одну таблицу. Дополнительная строка с названием «Цена» будет добавлена ​​в первый фрейм данных. Индекс даты и времени является ключом к их объединению.

1 Ответ

0 голосов
/ 13 июля 2020

попробуйте, как показано ниже, используя слияние

df1.merge(df2, left_on='lkey', right_on='Ln3')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...