У меня есть следующий фрейм данных:
>>> import pandas as pd
>>> import numpy as np
>>> df_test = pd.DataFrame({'id': [100, 101, 102, 103, 104], 'drive': ['4WD', None, '4WD', None, '2WD']})
>>> print(df_test)
id drive
0 100 4WD
1 101 None
2 102 4WD
3 103 None
4 104 2WD
И я хотел бы создать новый столбец is_4x4 , который будет равен 0, когда диск is None или drive is 2WD . В других случаях мне бы хотелось, чтобы столбец был равен 1.
Я использую следующий код, но результат не такой, как я ожидал:
>>> df_test['is_4x4'] = np.where(pd.isnull(df_test['drive']) | df_test['drive'] == '2WD', 0, 1)
>>> print(df_test)
id drive is_4x4
0 100 4WD 1
1 101 None 1
2 102 4WD 1
3 103 None 1
4 104 2WD 1
Мой желаемый результат - следующее:
id drive is_4x4
0 100 4WD 1
1 101 None 0
2 102 4WD 1
3 103 None 0
4 104 2WD 0
Пожалуйста, не могли бы вы мне помочь, что я делаю не так? Почему мой код не работает?