【发布时间】:2020-04-27 14:12:57
【问题描述】:
列 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)
但是,这并没有按计划进行。这里的正确方法是什么?
【问题讨论】:
-
df.terms.apply(len)? -
谢谢,请看编辑 - 需要分别计算每个术语。
标签: python pandas dataframe data-processing