У меня есть два кадра данных.
Первый в этом формате, назовем это df
Date Counterparty Amount
3/1 Bank A $100
3/1 Bank B $100
3/1 Bank C $100
...
3/30 Bank B $100
3/30 Bank C $150
3/30 Bank D $300
3/30 Bank E $250
Второй имеет рейтинговую информацию для каждого банка в этом формате.
Давайте назовем это NRSRO
Date Bank A Bank B Bank C Bank D Bank E Bank F ....Bank Z
3/1 AA ...
3/2 AA ...
3/3 AA ...
Я попробовал следующий код
NRSRO= pd.DataFrame(NRSRO.stack(), columns=['Rating']).reset_index()
NRSRO= NRSRO.rename(columns = {'level_1':'Counterparty'})
Это превращает информационный кадр NRSRO в:
Date Counterparty Rating
3/1 Bank A AA
3/2 Bank A AA
...
3/30 Bank A AA
3/1 Bank B AAA
3/2 Bank B AAA
...
...
3/30 Bank Z AAA
Наконец, объединить данные с
result = pd.merge(df, NRSRO, how = 'left', on = ['Date', 'Counterparty'])
Я получаю смешанные результаты.
Когда я запускаю это, return is true.
result['Rating'].isnull().values.any()
Для некоторых банков данные рейтинга успешно добавлены к фрейму данных «результат», но для других он показывает NaN. Я уверен в целостности данных, нет пропущенных данных из источника.
Есть идеи, что здесь происходит?