Провести расчет нового столбца как среднее значение других столбцов в pandas
Описание проблемы:
Я работаю с датафреймом в pandas и хочу добавить новый столбец, который будет содержать среднее значение по столбцам salary_1
, salary_2
и salary_3
. У меня есть следующий датафрейм:
df = pd.DataFrame({
'salary_1': [230, 345, 222],
'salary_2': [235, 375, 292],
'salary_3': [210, 385, 260]
})
Вот как выглядит мой датафрейм:
salary_1 salary_2 salary_3
0 230 235 210
1 345 375 385
2 222 292 260
Я хочу получить новый столбец, например, salary_mean
, который будет вычисляться как среднее значение для каждого ряда:
salary_1 salary_2 salary_3 salary_mean
0 230 235 210 (230+235+210)/3
1 345 375 385 ...
2 222 292 260 ...
Как я могу это сделать в pandas наиболее эффективным способом? У меня значительно больше столбцов, и я не хочу писать их все по одному.
1 ответ(ов)
Простой способ решения этой задачи показан ниже:
col = df.loc[:, "salary_1":"salary_3"]
где "salary_1" — это имя стартового столбца, а "salary_3" — имя конечного столбца.
df['salary_mean'] = col.mean(axis=1)
df
Это создаст новый DataFrame с новой колонкой, которая показывает среднее значение всех указанных колонок. Этот подход особенно полезен, когда у вас есть большой набор колонок или когда нужно проводить расчеты только по некоторым выбранным колонкам, а не по всем.
Как изменить порядок столбцов в DataFrame?
Преобразование списка словарей в DataFrame pandas
Объединение двух столбцов текста в DataFrame pandas
Установить значение для конкретной ячейки в DataFrame pandas с использованием индекса
Выбор строки из pandas Series/DataFrame по целочисленному индексу