Создание столбца с условиями if-else-else в Pandas
Чтобы создать новый столбец на основе условия if-elif-else , существует два основных подхода:
Невекторизованный подход
Этот подход предполагает определение функции, которая работает со строками:
def f(row):
if row['A'] == row['B']:
val = 0
elif row['A'] > row['B']:
val = 1
else:
val = -1
return val
Затем примените его к фрейму данных по строкам:
df['C'] = df.apply(f, axis=1)
Векторизованный подход
Векторизованный подход использует np.where для непосредственного создания нового столбца:
df['C'] = np.where(
df['A'] == df['B'], 0, np.where(
df['A'] > df['B'], 1, -1))
Этот подход более эффективен для больших наборов данных.
Вот пример использования предоставленного фрейма данных:
Входной кадр данных
A | B |
---|---|
2 | 2 |
3 | 1 |
1 | 3 |
Выходной кадр данных
A | B | C |
---|---|---|
2 | 2 | 0 |
3 | 1 | 1 |
1 | 3 | -1 |
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3