Выполните поиск для каждого столбца в отдельности Python Pandas

#python #pandas #lookup

#python #pandas #поиск

Вопрос:

Для фрейма данных я хотел бы выполнить поиск для каждого столбца и поместить результаты в соседний столбец. id_df содержит идентификаторы и выглядит следующим образом:

             Col1           Col2  ...               Col160                 Col161
0          4328.0        4561.0  ...                NaN                   5828.0
1          3587.0        4328.0  ...                NaN                  20572.0
2          4454.0        1702.0  ...                NaN                    683.0
  

lookup_df также содержит идентификатор и значение, которые меня интересуют. lookup_df выглядит следующим образом:

     ID       Value
0   3587    3.0650
1   4454    2.9000
2   5       2.8450
3   8       2.8750
4   11      3.1000
5   13      3.1600
6   16      2.4450
7   18      3.0700
8   20      2.7950
9   23      3.0500
10   25      3.2250
  

Я хотел бы получить следующий фрейм данных df3:

            Col1ID        Col1 Value   ...               Col161 ID             Col161 Value
0          4328.0        2.4450       ...                5828.0                   3.1600
1          3587.0        3.2250       ...                20572.0                  3.0650
2          4454.0        3.0500       ...                 683.0                   3.1600
  

Поскольку я пользователь Excel, я подумал об использовании функции ‘merge’, но я не вижу, как это можно сделать с несколькими столбцами.

Спасибо!

Ответ №1:

Используйте map :

 m = lookup_df.set_index('ID')['Value']

result = pd.DataFrame()
for col in id_df.columns:
    result[col   '_ID'] = df[col]
    result[col   '_Value'] = df[col].map(m)
  

Комментарии:

1. Именно то, что я искал. Работает отлично. Высоко ценится, спасибо!