Для этой конкретной проблемы вы можете попробовать этот код, а затем изменить его соответствующим образом.
DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame (
{'Flight Day': ['2018-10-01', '2018-10-01','2018-10-01', '2018-10-01', '2018-10-02','2018-10-02', '2018-10-02', '2018-10-02', '2018-10-03','2018-10-03', '2018-10-03','2018-10-03'],
'Flight Number': ['LX1336', 'LX1337', 'LX1472', 'LX1473', 'LX1336', 'LX1337', 'LX1472', 'LX1473', 'LX1336', 'LX1337', 'LX1472', 'LX1473'],
'STD Departure': [10, 15, 8, 11,10, 15, 8, 14,10, 15, 8, 11],
'Quantity': [2, np.NaN, 8, 4,3, 2, 3, 1,np.NaN, 5, 2, 1],
'ProductName': ['Bircher',' Salad',' Carac',' Salad',' Bircher',' Carac',' Carac',' Salad','Bircher',' Carac',' Carac',' Salad'],
'SaleTypeName': [np.NaN, np.NaN, np.NaN, np.NaN ,np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]})
Часть кода для реализации:
def replace(name):
return "valid" if name.strip()=="Salad" else np.NaN
df['SaleTypeName'] = df.loc[:,'ProductName'].apply(lambda x: replace(x))
Вывод:
ProductName SaleTypeName
0 Bircher NaN
1 Salad valid
2 Carac NaN
3 Salad valid
4 Bircher NaN
5 Carac NaN
6 Carac NaN
7 Salad valid
8 Bircher NaN
9 Carac NaN
10 Carac NaN
11 Salad valid