0
Я пытаюсь реализовать условие case в python pandas.Состояние случая в Python Pandas
Эквивалент Sql как ниже -
case when entered_by = created_by_user then entered_by
when entered_by = entered_by then entered_by
when modified_by = created_by_user then modified_by
when modified_by = entered_by then modified_by
end as "AD_ID"
Я написал код ниже панд для достижения выше, но получить в error-
def func(row):
if dftemp['entered_by'] == dftemp['created_by_user']:
return dftemp['entered_by']
elif dftemp['entered_by'] == dftemp['entered_by']:
return dftemp['entered_by']
elif dftemp['modified_by'] == dftemp['created_by_user']:
return dftemp['modified_by']
elif dftemp['modified_by'] == dftemp['entered_by']:
return dftemp['modified_by']
else:
return 'other'
dftemp['AD_ID'] = dftemp.apply(func, axis=1)
Я получаю ошибку ниже -
ValueError: ('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', u'occurred at index 0')
Есть ли лучший способ достичь того же?
Спасибо.
@Donkey Kong - Я попытался ниже, не работало -
def func(row):
if assert_series_equal(dftemp['entered_by'], dftemp['created_by_user']):
return dftemp['entered_by']
elif assert_series_equal(dftemp['entered_by'], dftemp['entered_by']):
return dftemp['entered_by']
elif assert_series_equal(dftemp['modified_by'], dftemp['created_by_user']):
return dftemp['modified_by']
elif assert_series_equal(dftemp['modified_by'], dftemp['entered_by']):
return dftemp['modified_by']
else:
return 'other'
dftemp['AD_ID'] = dftemp.apply(func, axis=1)