2 столбца данных в качестве первого снимка экрана. Я хочу добавить новые столбцы (по содержимому столбца Note из исходного фрейма данных), чтобы узнать, содержит ли столбец Note текст заголовка нового столбца.
Пример как второй скриншот.
Некоторые строки работают для нескольких столбцов. Когда много новых столбцов, это неэффективно.
Что было бы хорошим способом сделать это? Спасибо.
import pandas as pd
from io import StringIO
csvfile = StringIO(
'''Name\tNote
Mike\tBright, Kind
Lily\tFriendly
Kate\tConsiderate, energetic
John\tReliable, friendly
Ale\tBright''')
df = pd.read_csv(csvfile, sep = '\t', engine='python')
col_list = df['Note'].tolist()
n_list = []
for c in col_list:
for _ in c.split(','):
n_list.append(_)
df = df.assign(**dict.fromkeys(n_list, ''))
df["Bright"][df['Note'].str.contains("Bright")] = "Yes"






Вы можете попробовать .str.get_dummies, а затем заменить 1 на Yes
df = df.join(df['Note'].str.get_dummies(', ').replace({1: 'Yes', 0: ''}))
print(df)
Name Note Bright Considerate Friendly Kind Reliable energetic friendly
0 Mike Bright, Kind Yes Yes
1 Lily Friendly Yes
2 Kate Considerate, energetic Yes Yes
3 John Reliable, friendly Yes Yes
4 Ale Bright Yes