Pandas минимум между 2 столбцами

Рейтинг: -3Ответов: 1Опубликовано: 11.01.2023

Как добавить в пандас дата фрейм столбец с функцией min или max между значениями двух других столбцов? Фрейм df = pd.DataFrame({'First':[1, 3, 5], 'Second':[4, 4, 2]}) Надо добавить колонку Third: [1, 3, 2] Так не работает:

df['Third'] = min(df.First, df.Second)

Ответы

▲ 2

Если функций несколько - например, минимум и максимум, удобно использовать 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.