Pandas минимум между 2 столбцами
Как добавить в пандас дата фрейм столбец с функцией min или max между значениями двух других столбцов?
Фрейм df = pd.DataFrame({'First':[1, 3, 5], 'Second':[4, 4, 2]})
Надо добавить колонку Third: [1, 3, 2]
Так не работает:
df['Third'] = min(df.First, df.Second)
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Если функций несколько - например, минимум и максимум, удобно использовать agg():
df = pd.DataFrame({'First':[1, 3, 5], 'Second':[4, 4, 2]})
df[['min', 'max']] = df.agg([min, max], axis=1)
print(df)
First Second min max
0 1 4 1 4
1 3 4 3 4
2 5 2 2 5
Можно и просто min():
df['min'] = df[['First', 'Second']].min(axis=1) # если во фрейме есть столбцы, которые не нужно обрабатывать, то отбираем только нужные
df['min'] = df.min(axis=1) # если обрабатываем все столбцы
First Second min
0 1 4 1
1 3 4 3
2 5 2 2
Методы применяем к оси columns или 1: axis=1.
Новую колонку я бы не называл Third, поскольку оно не отражает того, что содержит минимум. Лучше назвать столбец соответственно примененной функции - min или max.