Я хотел бы использовать функцию, которая производит несколько выходов для создания нескольких новых столбцов в существующем pandas фрейме данных.
Например, у меня есть эта тестовая функция, которая выводит 2 значения:
def testfunc (TranspoId, LogId):
thing1 = TranspoId + LogId
thing2 = LogId - TranspoId
return thing1, thing2
Я могу передать эти возвращенные результаты в 2 разные переменные, например:
Thing1,Thing2 = testfunc(4,28)
print(Thing1)
print(Thing2)
Я пытался сделать это с фреймом данных следующим образом:
data = {'Name':['Picard','Data','Guinan'],'TranspoId':[1,2,3],'LogId':[12,14,23]}
df = pd.DataFrame(data, columns = ['Name','TranspoId','LogId'])
print(df)
df['thing1','thing2'] = df.apply(lambda row: testfunc(row.TranspoId, row.LogId), axis=1)
print(df)
Я хочу, чтобы это выглядело примерно так:
data = {'Name':['Picard','Data','Guinan'],'TranspoId':[1,2,3],'LogId':[12,14,23], 'Thing1':[13,16,26], 'Thing2':[11,12,20]}
df = pd.DataFrame(data, columns=['Name','TranspoId','LogId','Thing1','Thing2'])
print(df)
В реальном мире эта функция выполняет много тяжелой работы, и я не могу позволить себе запускать его дважды, один раз для каждой новой переменной, добавляемой в df.
Я бью себя этим несколько часов. Приветствуются любые идеи.