Столбец term хранит набор из нескольких строк (из фиксированного набора ~ 1000 строк) .
df = pd.DataFrame([[{'city', 'mouse'}],
[{'mouse'}],
[{'blue'}]],
columns=['terms'])
Out[1]
terms
0 {mouse, city}
1 {mouse}
2 {blue}
Я хочу перебрать строки и подсчитывают вхождения каждого уникального термина в строке, поэтому я планирую создать логический столбец для каждого найденного термина. Что-то вроде:
terms has_mouse has_city has_blue
0 {mouse, city} 1 1 0
1 {mouse} 1 0 0
2 {blue} 0 0 1
Я попробовал это:
def count_terms_in_row(row):
for term in row['terms']:
row['has_{}'.format(term)] = 1
df.apply(count_terms_in_row, axis=1)
Однако это не сработало, как планировалось. Какой правильный подход здесь?