#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. Именно то, что я искал. Работает отлично. Высоко ценится, спасибо!