如何将数据框设置值转换为多个布尔列?

问题描述 投票:1回答:1

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)

但是,这没有按计划进行。什么是正确的方法?

python pandas dataframe data-processing
1个回答
0
投票

您可以尝试以下方法:

df['count'] = df['terms'].str.len()
print(df)

           terms  count
0  {mouse, city}      2
1        {mouse}      1
2         {blue}      1
© www.soinside.com 2019 - 2024. All rights reserved.