Попытка присоединиться к двум фреймам данных на основе нескольких ключей, но с ошибкой - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть два кадра данных неравного размера, у них обоих есть два столбца «CUSIP» и «Counterparty», которые я пытаюсь сопоставить. Я хочу взять только два значения столбца из одного кадра данных, поэтому, когда я делаю это

df = df.merge(gs[['Dirty Price','Factor']], how = 'left', on = ['CUSIP', 'Counterparty'])

, я получаю эту ошибку:

    df = df.merge(gs[['Dirty Price','Factor']], how = 'left', on = ['CUSIP', 'Counterparty'])
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py", line 6868, in merge
    copy=copy, indicator=indicator, validate=validate)
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\merge.py", line 47, in merge
    validate=validate)
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\merge.py", line 529, in __init__
    self.join_names) = self._get_merge_keys()
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\merge.py", line 833, in _get_merge_keys
    right._get_label_or_level_values(rk))
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1706, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 'CUSIP'

Я не уверен, почему это происходит. Любые идеи, пожалуйста, поделитесь.

1 Ответ

1 голос
/ 21 апреля 2020

У вас нет CUSIP, ни Counterparty в вашем gs срезе, попробуйте:

df = df.merge(gs[['CUSIP', 'Counterparty','Dirty Price','Factor']], how = 'left', on = ['CUSIP', 'Counterparty'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...