Мне нужно было бы присвоить логические значения строкам в новом столбце Y
на основе значения столбца с именем X
(1,2,3,4
, 5
). У меня есть этот столбец в наборе данных df
:
X
1
1
1
3
2
5
2
4
1
Мне нужен новый, Y, в новом наборе данных, который является копией df, где:
- если строка имеет значение X = 1, то True
- если строка имеет значение X = 2, то False
- если строка имеет значение X = 3, то False
- если строка имеет X value = 4, затем True
- если строка имеет значение X = 5, то False
Итак, у меня должно быть
X Y
1 true
1 true
1 true
3 false
2 false
5 false
2 false
4 true
1 true
Я написал этот код:
new_df=df.copy()
new_df['Y'] = False
for index in df.iterrows():
if df['X'] == 1:
new_df.iloc[index,9] = True
elif df['X'] == 2:
new_df.iloc[index,9] = False
elif df['X'] == 3:
new_df.iloc[index,9] = False
elif df['X'] == 4:
new_df.iloc[index,9] = True
else:
new_df.iloc[index,9] = False
появляется эта ошибка:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Не могли бы вы помочь мне исправить код, чтобы получить ожидаемый результат? Спасибо