首页 >后端开发 >Python教程 >如何有效地计算 Pandas DataFrame 中组内术语的出现次数?

如何有效地计算 Pandas DataFrame 中组内术语的出现次数?

Linda Hamilton
Linda Hamilton原创
2024-12-12 17:11:14693浏览

How to Efficiently Count Term Occurrences within Groups in a Pandas DataFrame?

按 Pandas 数据框中的术语计数进行分组

问题:

给定一个数据框以下列:id、group 和 term。目标是确定每个术语在 id 和 group 的每个唯一组合中出现的次数。

解决方案:

要避免使用循环,请使用 groupby 和Pandas 中的 size 函数:

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)

groupby 函数按指定列(id、group 和term),而 size 函数计算每个组合的出现次数。 unstack 函数会生成一个更具视觉吸引力的表格,其中计数以矩阵形式排列。

结果是一个具有多索引列的表格,其中前两个级别代表 id 和 group 的组合,第三个级别代表 id 和 group 的组合对应于该术语。表中的每个单元格显示特定术语在相应 ID 和组中出现的次数。

时间:

对于大型数据集(例如 1,000,000 行) ,性能非常出色:

df = pd.DataFrame(dict(id=np.random.choice(100, 1000000),
                       group=np.random.choice(20, 1000000),
                       term=np.random.choice(10, 1000000)))

使用上述方法,经过的时间约为1秒。

以上是如何有效地计算 Pandas DataFrame 中组内术语的出现次数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn