如何计算数据帧所有行中列列表中包含的字数和唯一字数?

2024-09-26 22:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pandas数据框中生成了一列df['adjectives'],其中包含另一列df['reviews']中所有形容词的列表。你知道吗

df['adjectives']的值采用以下格式,例如:

['excellent', 'better', 'big', 'unexpected', 'excellent', 'big']

我想创建一个新的列来计算df['adjectives']中的单词总数以及df['adjectives']中“唯一”单词的数量。你知道吗

函数应该遍历整个数据帧并应用每行的计数。你知道吗

对于上面的行示例,我希望df['totaladj']是6,df['uniqueadj']是4(因为'excellent'和'big'是重复的)

import pandas as pd

df=pd.read_csv('./data.csv')

df['totaladj'] = df['adjectives'].str.count(' ') + 1

df.to_csv('./data.csv', index=False)

上面的代码在计算形容词总数时起作用,但不计算形容词的唯一数目。你知道吗


Tags: csv数据pandasdf列表data单词pd
1条回答
网友
1楼 · 发布于 2024-09-26 22:54:10

这就是你想要的行为类型吗?你知道吗

根据您的描述,我假设形容词列中的值是一个类似列表的字符串,例如“['big'、'excellent'、'small']”

下面的代码使用split()将字符串转换为一个列表,然后使用len()获取长度。在使用len()之前,通过将列表转换为一个集合来查找唯一形容词的数量。你知道吗

df['adjcount'] = df['adjectives'].apply(lambda x:  len(x[1:-1].split(',')))

df['uniqueadjcount'] =  df['adjectives'].apply(lambda x:  len(set(x[1:-1].split(','))))

相关问题 更多 >

    热门问题