Pandas:对列表的每个元素使用 groupby

2024-03-14

也许我错过了显而易见的事情。

我有一个 Pandas 数据框,如下所示:

   id        product              categories
    0        Silmarillion         ['Book', 'Fantasy']
    1        Headphones           ['Electronic', 'Material']
    2        Dune                 ['Book', 'Sci-Fi']

我想使用 groupby 函数来计算类别列中每个元素的出现次数,所以这里的结果是

Book       2
Fantasy    1
Electronic 1
Material   1
Sci-Fi     1

然而,当我尝试使用 groupby 函数时,pandas 会计算整个列表的出现次数,而不是分隔其元素。我尝试了多种不同的方法来处理这个问题,使用元组或拆分,但到目前为止我还没有成功。


您也可以致电pd.value_counts直接在列表上。
您可以通过以下方式生成适当的列表numpy.concatenate, itertools.chain, or cytoolz.concat

from cytoolz import concat
from itertools import chain

cytoolz.concat

pd.value_counts(list(concat(df.categories.values.tolist())))

itertools.chain

pd.value_counts(list(chain(*df.categories.values.tolist())))

numpy.unique + numpy.concatenate

u, c = np.unique(np.concatenate(df.categories.values), return_counts=True)
pd.Series(c, u)

全部产量

Book          2
Electronic    1
Fantasy       1
Material      1
Sci-Fi        1
dtype: int64

时间测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:对列表的每个元素使用 groupby 的相关文章

  • 如何计算数据框中按另一列的列值分组的一列的连续字符串值?

    我有以下数据框 Levels Labels Confidence 0 Hands 0 8 0 Leg 0 7 0 Eye 0 9 1 Ear 0 9 1 Eye 0 8 2 Hands 0 9 2 Eye 0 8 3 Eye 0 8 我想检
  • Matplotlib 图例,跨列添加项目而不是向下添加项目

    对于下面的简单绘图 有没有办法让 matplotlib 填充图例 以便它从左到右填充行 而不是第一列然后第二列 gt gt gt from pylab import gt gt gt x arange 2 pi 2 pi 0 1 gt gt
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 查找正在导入哪些 python 模块

    从应用程序中使用的特定包中查找所有 python 模块的简单方法是什么 sys modules是将模块名称映射到模块的字典 您可以检查其键以查看导入的模块 See http docs python org library sys html
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • 使用pathlib获取主目录

    翻看新的pathlib在 Python 3 4 中 我注意到没有任何简单的方法来获取用户的主目录 我能想到的获取用户主目录的唯一方法是使用旧的os path像这样的库 import pathlib from os import path p
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 高级描述熊猫

    有没有像 pandas 那样更高级的功能 通常我会继续这样 r pd DataFrame np random randn 1000 columns A r describe 我会得到一份很好的总结 就像这样 A count 1000 000
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • 更改 Matplotlib 投影轴的背景颜色

    我正在尝试使用 Cartopy 创建一个图形 该图形需要在未投影的轴上绘制投影轴 这是一个尽可能简单的代码版本 它将轴上的内容替换为背景颜色 import matplotlib pyplot as plt import cartopy cr
  • 使用 if 语句的网格网格和用户定义函数的真值不明确

    假设我有一个函数f x y 足够光滑 然而 有些值仅在有限的意义上存在 以sin x x的价值x 0只存在于极限 x gt 0 中 在一般情况下 我用一个来处理这个问题if陈述 如果我在情节中使用它meshgrid我收到一条错误消息 Val
  • Python 相当于 Scala 案例类

    Python 中是否有与 Scala 的 Case Class 等效的东西 就像自动生成分配给字段而无需编写样板的构造函数一样 当前执行此操作的现代方法 从 Python 3 7 开始 是使用数据类 https www python org
  • 没有名为“turtle”的模块

    我正在学习并尝试用Python3制作贪吃蛇游戏 我正在进口海龟 我正在使用 Linux mint 19 PyCharm python37 python3 tk Traceback most recent call last File hom
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数
  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • MoviePY 无法在 Windows 上检测 ImageMagick 二进制文件

    我刚买了一台新笔记本电脑 想要设置MoviePY在那新的Windows 64x Python3 7 0 机器 我对所有内容都进行了三次检查 但是当涉及到我的代码的文本部分时 它向我抛出了这个错误 OSError MoviePy Error

随机推荐

  • constexpr 函数内的编译时或运行时检测

    当 C 11 中引入 constexpr 时 我很兴奋 但不幸的是我对其有用性做出了乐观的假设 我假设我们可以在任何地方使用 constexpr 来捕获文字编译时常量或文字编译时常量的任何 constexpr 结果 包括如下所示 const
  • 更新推送接收时应用程序图标上的徽章计数 (IOS)

    我正在开发可以从服务器接收推送通知的应用程序 从服务器发送推送通知时 您可以指定要在应用程序图标上显示的徽章编号 现在这意味着您必须跟踪服务器上的徽章计数 这似乎不是一个好的方法 有没有什么好的替代方案 这样我就不需要跟踪服务器上的徽章编号
  • 在 NSView 上使用 NSPoint 鼠标跟踪

    我在 App Delegate 中有一个方法可以创建窗口和内容视图 但我希望能够在进入和退出视图时使用 NSPoint 跟踪鼠标 问题是我不想创建 NSView 自定义类 而是想在我的 AppDelegate 中完成这一切 鼠标跟踪 底部
  • 简单的 PowerShell LastWriteTime 比较

    我需要一个 PowerShell 脚本来访问文件的属性并发现最后写入时间属性并将其与当前日期进行比较并返回日期差 我有这样的东西 writedate Get ItemProperty Path source Name LastWriteTi
  • 使用 Android Studio 未选择渲染目标

    我的 Android Studio 在 Activity main xml 中显示此问题 渲染问题未选择渲染目标 帮助 您需要运行 AVD 管理器来添加与您的项目设置的目标 API 版本相匹配的虚拟设备 单击工具 gt Android gt
  • Maven:如何重命名项目的war文件?

    我有一个项目bird具有以下组件pom xml
  • 具有内联模型表单或表单集的基于 django 类的视图

    我有以下型号 class Bill models Model date models DateTimeField Date of bill null True blank True class Item models Model name
  • 未找到 JSF2.0 标签

    最近我一直在玩 JSF2 0 Richface 3 3 3 我使用 STS 作为我的 IDE 和 Maven 来构建我的项目 但不知何故我无法让以下 JSF2 0 标签工作 h button h link f 元数据 f viewParam
  • 如何解耦小部件的模型/视图

    我正在编写一个应用程序 用于绘制小部件 菜单 控件等以创建应用程序模型 每个屏幕都表示为小部件的集合 每个小部件都是简单的类 例如 class Model object def init self self widgets class Wi
  • 将长格式转换为宽格式

    id lt c 1 8 1 8 age1 lt c 7 5 6 7 8 6 9 5 8 7 6 3 9 5 age2 lt age1 round runif 1 1 3 1 age lt c age1 age2 tanner lt samp
  • ng-bootstrap 在 Angular 4 中不起作用

    我是 Angular 4 的新手 我正在尝试配置引导程序 我安装了 ng bootstrap https ng bootstrap github io getting started https ng bootstrap github io
  • 为 C++ 配置 Vim

    我想让 vim 成为我的 C 编辑器 我对此的使用经验很少 并需要帮助配置 vim 以使用 C 我需要这样的功能 代码完整 对于 stl 和我的课程 在 cc 和 h 文件之间切换 作为 C 和 Vim 大师 您可能还有更多技巧 也许您可以
  • 从 gcc/clang 获取 libasan 的位置

    当我编译时 fsanitize address GCC Clang 隐式使用 ASAN 动态库 为 ASAN 提供运行时支持 如果您构建的库是由另一个应用程序动态加载的 则需要设置LD PRELOAD包含此动态库 以便它在应用程序启动时运行
  • 为什么我不能在 setter 中放置属性名称而不是“value”关键字?

    当我通过 setter 中分配一个值时value关键字 它有效 但是 为什么当我尝试通过属性名称分配值时它不起作用 该属性应该保存相同的分配值 在下面的例子中 我使用valuesetter 中的关键字 它工作得很好 我得到了预期的输出 pr
  • 为什么C中释放的结构体仍然有数据?

    当我运行这段代码时 include
  • JavaScript 对象中的构造函数

    JavaScript 类 对象可以有构造函数吗 它们是如何创建的 使用原型 function Box color Constructor this color color Box prototype getColor function re
  • 重新网格化锯齿状测试数据

    背景 我有 4 组有刷直流电机的数据全部来自同一实验 扭矩与速度 T 与 w 扭矩与效率 T 与 n 扭矩与输入功率 T 与 Pin 扭矩与输出功率 T 与 Pout 然而 每个数据集都有 第一个和最后一个数据对的 x 值略有不同 每个数据
  • Java 中的关键字“transient”是什么意思? [复制]

    这个问题在这里已经有答案了 我在某处看到 transient private TrackDAO trackDAO 您可能首先看看什么序列化 http en wikipedia org wiki Serialization is 它标记一个成
  • 为什么语句“m = ++i ||”中的“k”不递增++j && ++k”? [复制]

    这个问题在这里已经有答案了 第 1 部分 i j k 1 m i j k printf d d d d n i j k m 输出 2 2 1 1 第一部分很容易理解 在这里 i j首先执行 这是正确的 并且增加 i 和 j 的值 因此不需要
  • Pandas:对列表的每个元素使用 groupby

    也许我错过了显而易见的事情 我有一个 Pandas 数据框 如下所示 id product categories 0 Silmarillion Book Fantasy 1 Headphones Electronic Material 2