Column term存储带有几个字符串的集合((从固定的〜1000个字符串集中)。
df = pd.DataFrame([[{'city', 'mouse'}],
[{'mouse'}],
[{'blue'}]],
columns=['terms'])
我想遍历行并计算每行中术语的出现,因此我计划为找到的每个术语创建一个布尔列。类似于:
def count_terms_in_row(row):
for term in row['terms']:
row['has_term_{}'.format(term)] = 1
df.apply(count_terms_in_row, axis=1)
但是,这没有按计划进行。什么是正确的方法?
您可以尝试以下方法:
df['count'] = df['terms'].str.len()
print(df)
terms count
0 {mouse, city} 2
1 {mouse} 1
2 {blue} 1