DataFrame 内列表中令牌的令牌频率

不知道为什么

我不太确定如何措辞标题。我有一个带有一列的数据框,其中每一行都包含一个标记列表。我需要获取单词的频率,然后对它们进行排序以获得最常用的单词。这是 DataFrame 架构的图像:https ://i.stack.imgur.com/elkZz.png

标记器用于获取标记数组。

Dataframe 行内的数组是什么样的

现在,当“行”仅包含一个包含大量单词的字符串而不是每个索引处包含单词的列表时,我之前已经这样做了。

和 :

frequency = dataframe.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a+b)

但是,我终其一生都无法弄清楚如何访问这些元素。上面的 lambda 表达式不起作用,因为它试图在列表中执行它。'不可散列的类型:'列表''

所以 tldr 中的问题:如何正确访问数组中的元素以计算数据帧所有行中单词的频率?此外,我将如何将结果放入数组中?

贾斯廷戈

一种方法是explodepyspark.sql.functions模块中使用它接受一个数组列,并为您应用该explode函数的整个列的数组中的每个元素返回一个新行由于您的 DataFrame 只有一列,因此要获取整个 DataFrame 中的单词数,它看起来像这样:

dataframe \
    .select(explode("words").alias("words_exploded")) \
    .groupBy("words_exploded") \
    .count()

如果您想获得每条记录的字数,您可以在“分解”列表之前添加一个 ID 列,例如使用monotonically_increasing_id

dataframe \
    .withColumn(monotonically_increasing_id().alias('id')) \
    .select(explode("words").alias("words_exploded")) \
    .groupBy("id", "words_exploded").count()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在列上合并DataFrame的列表?

来自分类Dev

熊猫:如何从DataFrame中删除重复的行并计算其频率?

来自分类Dev

从DataFrame列表访问Pandas DataFrame对象

来自分类Dev

python pandas:访问DataFrame中列表的元素

来自分类Dev

如何从cmake的列表中删除令牌?

来自分类Dev

带有嵌套列表的字典中的DataFrame

来自分类Dev

根据列表中的值修剪Pandas DataFrame

来自分类Dev

Pandas DataFrame:从列内的列表创建列

来自分类Dev

在Pandas DataFrame中拆分列表

来自分类Dev

带有列表的字典中的Pandas DataFrame

来自分类Dev

在Pandas DataFrame列表中的分组项

来自分类Dev

筛选列表的DataFrame行

来自分类Dev

如何从DataFrame制作列表?

来自分类Dev

计算Pandas DataFrame中每一行的频率

来自分类Dev

大熊猫DataFrame中每个单词的频率

来自分类Dev

从Pandas DataFrame中删除列表

来自分类Dev

获取列表中随机DataFrame的索引位置

来自分类Dev

数组列表中的python pandas dataframe

来自分类Dev

计算pandas DataFrame中值的频率

来自分类Dev

计算Spark Dataframe中的新列,并使用pyspark将df1中的令牌列表列与df2中的文本列交叉

来自分类Dev

NLTK令牌-从熊猫系列中创建单词的单个列表

来自分类Dev

如何从Lucene 8.6.1索引中获取所有令牌的列表?

来自分类Dev

熊猫DataFrame:数据列表?

来自分类Dev

DataFrame列包含双引号内的列表

来自分类Dev

字典列表的DataFrame列

来自分类Dev

从DataFrame列表访问Pandas DataFrame对象

来自分类Dev

JavaCC识别令牌中的令牌

来自分类Dev

按多个条件从列表中过滤令牌

来自分类Dev

如何在 Pandas DataFrame 中显示元素的频率?