У меня есть следующий фрейм данных, и я пытаюсь получить столбец доходов путем умножения между столбцом A или столбцом B и столбцом C.
Условие:
type columnA columnB columnC
1 23 NaN 2
2 14 35 3
3 11 NaN 4
4 29 12 5
как мне получить этот столбец доходов с этими двумя условиями в python? Заранее спасибо.
Сначала вы можете проверить, содержит ли columnB
какие-либо значения NaN
, используя .isnull().values.any()
, а затем применить условие if else
, чтобы получить желаемый столбец revenue
.
Вот как это сделать:
df['revenue'] = df['columnA'] * df['columnC'] if df['columnB'].isnull().values.any() else df['columnB'] * df['columnC']
Выход:
type columnA columnB columnC revenue
0 1 23 NaN 2 46
1 2 14 35.0 3 42
2 3 11 NaN 4 44
3 4 29 12.0 5 145
Использовать np.where
import numpy as np
df['revenue'] = np.where(df['columnB'].isna(), df['columnA'] * df['columnC'], df['columnB'] * df['columnC'])
type columnA columnB columnC revenue
0 1 23 NaN 2 46.0
1 2 14 35.0 3 105.0
2 3 11 NaN 4 44.0
3 4 29 12.0 5 60.0