Сначала создайте оба условия с помощью isna()
и str.startswith
.
Затем используйте loc
для заполнения столбца2
:
m1 = df['1'].str.startswith('w')
m2 = df['2'].isna()
df.loc[m1&m2, '2'] = 'x'
Вывод
1 2
1 w x
2 w b
3 b b
4 w x
note : я предположил, что ваши имена столбцов являются строками, поэтому яиспользуется '1'
и '2'
. Если они целые, используйте 1
и 2
.