У меня есть следующий образец DataFrame и List (извлеченный из df).
import pandas as pd
color_list = ['green','blue','red','yellow','black']
df = pd.DataFrame({'object': ['car','plane','tree','house','phone'],
'colors': ['red, blue',
'red, yellow, black',
'black',
'green, blue',
'yellow, green, blue']})
Мне удалось создать для l oop, который правильно проверяет наличие определенного цвета (из color_list) в столбец цветов. Затем он создает новый столбец, который оценивает это условие и присваивает значение True или False каждой строке. Код следующий:
idx = df.columns.get_loc('colors') + 1
for i in range(len(color_list)):
df.insert(loc= idx + i,
column='has ' + color_list[i],
value = (df['colors'].str.contains(color_list[i], case=False, na=False)))
Он выводит следующее:
object colors has green ... has red has yellow has black
0 car red, blue False ... True False False
1 plane red, yellow, black False ... True True True
2 tree black False ... False False True
3 house green, blue True ... False False False
4 phone yellow, green, blue True ... False True False
Что правильно, вопрос в том, могу ли я передать условие в аргумент значения pd.insert?
Я хочу заменить значения True на «has» + (имя столбца) и False на что-то вроде «not has» + (имя столбца). это можно сделать в том же l oop?
Спасибо,