У меня есть два pandas.DataFrame
, которые разделяют некоторые столбцы.Я хочу добавить данные из одного на основе общей информации в другом.Проблема в том, что это довольно большие наборы данных, и мне нужно будет запустить эти строки несколько раз с несколькими парами таблиц.По этой причине это должно быть довольно быстро.Мой фрейм данных выглядит так:
import pandas as pd
mat = pd.DataFrame({'ID':[1,2,3,4,5],'OTHER_ID':[6,7,8,9,10]})
sess= pd.DataFrame({'ID':[11,12,13,14,15],'MAT_ID':[6,7,8,1,2]})
Я могу делать то, что хочу, используя карту, например:
sess['NEWCOLUMN']=list(map(lambda x:mat[mat['ID']==x]['OTHER_ID'],sess['MAT_ID']))
, но я хотел бы сделать это с пониманием списка, так как этоБыстрее.Вот что я пробовал:
sess['NEWCOLUMN']=[x for x in sess['MAT_ID'] mat[mat['ID']==x]['OTHER_ID']]
однако я получил синтаксическую ошибку.Я знаю, что могу сделать это с помощью обычного цикла for, но это не то, что я ищу.Могу ли я сделать это с помощью понимания списка, и если да, то как?