Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算数据框中所有行的列列表中包含的字数和唯一字数?_Python_Pandas - Fatal编程技术网

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

Python 如何计算数据框中所有行的列列表中包含的字数和唯一字数?,python,pandas,Python,Pandas,我在pandas数据框中生成了一列df['approxers'],其中包含另一列的所有形容词列表,df['reviews'] df[“形容词”]的值采用这种格式,例如: [“优秀”、“更好”、“大”、“意外”、“优秀”、“大”] 我想创建一个新列,计算df['approxers']中的单词总数以及df['approxers']中的“唯一”单词数 函数应该遍历整个数据帧,并应用每行的计数 对于上面的行示例,我希望df['totaladj']为6,df['uniqueadj']为4(因为“优秀”和“

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

df[“形容词”]
的值采用这种格式,例如:

[“优秀”、“更好”、“大”、“意外”、“优秀”、“大”]

我想创建一个新列,计算
df['approxers']
中的单词总数以及
df['approxers']
中的“唯一”单词数

函数应该遍历整个数据帧,并应用每行的计数

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

将熊猫作为pd导入
df=pd.read_csv('./data.csv')
df['totaladj']=df['adximates'].str.count('')+1
df.to_csv('./data.csv',index=False)

以上代码在计算形容词总数时有效,但不计算形容词的唯一数量。

这就是您要寻找的行为类型吗

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

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

df['adjcount']=df['adjmatexes'].apply(lambda x:len(x[1:-1])。split(','))
df['uniqueadjcount']=df['adximates'].apply(lambda x:len(set(x[1:-1])。split(','))

很高兴我能帮忙@youngguv如果此答案解决了您的问题,请确保您将其标记为已接受答案。