Как добавить столбец, который на основе разных значений для каждой строки проводит поиск типа Excel "INDEX, MATCH, MATCH" из другого фрейма данных? - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь добавить столбец с именем «Урожай к наихудшему», который для каждой строки использует значение «Тикер» для этой строки и передает INDEX, MATCH, MATCH на другой фрейм данных, чтобы найти значение Урожай к наихудшему для конкретный тикер. Фреймы данных находятся ниже "Tickers" и "Funds_Data". Желаемый вывод также.

Тикеры Датафрейм

Index   Tickers
0   IEF US Equity
1   JNK US Equity
2   HYG US Equity
3   LQD US Equity

Funds_Data Dataframe

         JNK US Equity  HYG US Equity   LQD US Equity   IEF US Equity
AUM      9560           16313           31525           13169
Duration 3.6            3.3             8.8             7.4
1-Mth    1.17           0.94            0.85            0.11
3-Mth    4.11           3.59            3.38            1.93
YTD      9.52           8.66            6.61            2.21
Yield    6.46           6.23            4.08            2.49

Желаемый выход

Index   Tickers    Yield
0   IEF US Equity   2.49
1   JNK US Equity   6.46
2   HYG US Equity   6.23
3   LQD US Equity   4.08

Код попытки

for ticker in range (0, len(Tickers)):
    Yield = pd.DataFrame(funds_data.loc['Yield to Worst', ticker])
Tickers['Yield'] = Yield

Спасибо за помощь

1 Ответ

1 голос
/ 03 мая 2019

Вы можете объединить tickers с funds_data, взяв строку Yield:

tickers.merge(funds_data.loc['Yield'],
              how='left', left_on='Tickers', right_index=True)

Вывод:

             Tickers  Yield
Index                      
0      JNK US Equity   6.46
1      HYG US Equity   6.23
2      LQD US Equity   4.08
3      IEF US Equity   2.49
5      MBB US Equity    NaN

PS Нет данных для "MBB US Equity"в вашем образце funds_data, так что получается как NaN

...