Пробелем с пандой слияние данных - PullRequest
0 голосов
/ 28 декабря 2018

Я пытался использовать функцию слияния панд, но получил сообщение об ошибке.Ключи имеют одинаковый тип и одинаковое имя, в чем может быть проблема: Мой код здесь:

print(data_EURUSD.head())
print(data_XAUUSD.head())
print(data_EURUSD.index)
print(data_XAUUSD.index)

data=pd.merge(data_EURUSD, data_XAUUSD, on='date', how='left')

print(data)

Результат:

                 askclose

date                         
2017-05-19 21:00:00   1.12090
2017-05-21 21:00:00   1.11999
2017-05-22 21:00:00   1.12402
2017-05-23 21:00:00   1.11840
2017-05-24 21:00:00   1.12195

                 askclose
date                         
2017-01-20 22:00:00   1209.47
2017-01-23 22:00:00   1218.46
2017-01-24 22:00:00   1209.41
2017-01-25 22:00:00   1201.18
2017-01-26 22:00:00   1189.04

 DatetimeIndex(['2017-05-19 21:00:00', '2017-05-21 21:00:00',

           '2018-12-26 22:00:00', '2018-12-27 22:00:00'],
          dtype='datetime64[ns]', name='date', length=500, freq=None)

 DatetimeIndex(['2017-01-20 22:00:00', '2017-01-23 22:00:00',

           '2018-12-26 22:00:00', '2018-12-27 22:00:00'],
          dtype='datetime64[ns]', name='date', length=500, freq=None)

....

KeyError: 'date'

1 Ответ

0 голосов
/ 28 декабря 2018

Эта ошибка возникает из-за того, что у вас есть datetime index, 'date' - это не column, это index значение.

Вы должны сделать:

pd.merge(data_EURUSD, data_XAUUSD, how='left',right_index=True,left_index=True)

В этих ситуациях я предпочитаю использовать pd.df.join(), который уже стремится присоединиться на основе общих индексов.Код будет:

data = data_EURUSD.join(data_XAUUSD,how='left')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...