python - 如何计算 Pandas 列表列中每个唯一值的出现次数

标签 python pandas

我在 DataFrame 中有一个列,如下所示:

A column that contains lists of string

我想计算这些列表中每个值的出现次数。

我想要的输出是一个 DataFrame,如下所示:

<表类=“s-表”> <标题> 类型 发生 <正文> 戏剧 12224 犯罪 5699 喜剧 1314 ... ...

我已经尝试过value_counts()结果是列表的频率,但其中的元素。

[Comedy, Drama]                                28
[Comedy, Drama, Romance]                       27
[Comedy]                                       25
[Action, Crime, Thriller]                      22
[Crime, Drama, Thriller]                       21
                                               ..
[Crime, Drama, Horror, Music, Thriller]         1
[Adventure, Drama, Romance]                     1
[Drama, Romance, War]                           1
[Action, Adventure, Fantasy]                    1
[Action, Comedy, Horror, Mystery, Thriller]     1

我还尝试将列合并到列表列表中,然后进行计数,但嵌套 for循环不是一个好方法。我希望有更好的解决方案。

最佳答案

您可以分解然后计算值

df["genre"].explode().value_counts()

explode 会将这些列表的内容分散到各自的每一行中,以便 value_counts 会将它们计为单独的实体。

关于python - 如何计算 Pandas 列表列中每个唯一值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75088031/

相关文章:

python pandas-在您所在的行上方添加一列的值

python - Celery 3.0.1 中的帧错误

android - Windows 上的 Kivy 独立 android apk

python - Django 。没有名为 reportlab.pdfgen 的模块

python - Matplotlib 奇子图

python - 使用原始数据框的 Pandas 条形图

python - 使用索引作为 x 轴标签绘制直方图

Pandas 5 年和 10 年移动平均线

python - 在 tweepy 中回复推文

python - 重置 pandas 中的重复多重索引