Я хотел бы добавить два новых столбца в свою фреймворк данных, применяя функцию, которая принимает входные данные из нескольких конкретных конкретных существующих столбцов.Используйте функцию для возврата нескольких выходов столбца из определенных входов столбца с использованием Pandas
Вот мой подход, который работает для возвращения одного столбца, но не кратно:
Вот мой DataFrame:
d = {'a': [3,0,2,2],
'b': [0,1,2,3],
'c': [1,1,2,3],
'd': [2,2,1,3]}
df = pd.DataFrame(d)
Я пытаюсь применить эту функцию:
def myfunc(a,b,c):
if a > 2 and b > 2:
print('condition 1',a,b)
return pd.Series((a,b))
elif a < 2 and c < 2:
print('condition 2',a,c)
return pd.Series((b,c))
else:
print('no condition')
return pd.Series((None,None))
НЕТ:
df['e'],df['f'] = df.apply(lambda x: myfunc(x['a'],x['b'],x['c']),axis=1)
Выход:
no condition
no condition
condition 2 0 1
no condition
no condition
DataFrame результат:
Как я могу ввода нескольких столбцов и получить несколько столбцов из?
Интересно, я подумал об этом сначала, но когда я его протестировал, я получил две колонки с NA естественно (тогда я подумал, что еще одна магия от панд) – Boud
Это дает мне странный результат. Если одно из условий истинно, оно заполняет все значения для новых столбцов с этим выводом вместо «Нет». – sparrow
@sparrow вам придется обновлять данные, которые вы фактически используете, это, похоже, работает на меня. Также обратите внимание, что у меня есть «Нет».Но 'pandas' сделает это' NaN' – piRSquared