Я хочу создать новые столбцы в кадре данных pandas на основе другого значения столбца, используя apply.Я получаю эту ошибку и не понимаю, почему:
File "C:\dev\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2448, in _setitem_array
raise ValueError('Columns must be same length as key')
ValueError: Columns must be same length as key
Я неправильно понимаю функцию применения?Можете ли вы обновить / создать несколько столбцов, используя один вызов apply?
Вот мои примеры данных:
import pandas as pd
x = pd.DataFrame({'VP': ['Brian', 'Sarah', 'Sarah', 'Brian', 'Sarah'],
'Director': ['Jim', 'Ian', 'Ian', 'Jim', 'Jerry'],
'Requester': ['Kelly', 'Dave', 'Jordan', 'Matt', 'Rob'],
'VP from Query': ['Jordan', 'Justin', 'Sarah', 'Brian', 'Sarah'],
'Director from Query': ['Other', 'Other', 'Ian', 'Jim', 'Jerry'],
'Requester from Query': ['Kelly', 'Dave', 'Jordan', 'Matt', 'Rob']
})
x = x[['VP', 'Director', 'Requester', 'VP from Query', 'Director from Query', 'Requester from Query']]
def set_suggested_hierarchy(row):
if row['VP'] != row['VP from Query']:
return row[['VP', 'Director']]
else:
return row[['VP from Query', 'Director from Query']]
x[['Suggested VP', 'Suggested Director']] = x.apply(lambda row: set_suggested_hierarchy(row), axis=1)
Большое вам спасибо