如何使用 df.groupby().transform() 有效组合分组数据框?

Barbara Streisand
发布: 2024-10-19 12:29:29
原创
272 人浏览过

How to Combine Grouped Dataframes Effectively Using df.groupby().transform()?

将 Groupby Dataframe 与 df.groupby().transform() 结合

在处理 pandas dataframe 时,通常需要对以下对象执行操作数据子集,例如对值进行分组和计算统计数据。但是,将这些操作的结果合并回原始数据帧可能会很麻烦。

要解决此挑战,请考虑以下场景:

问题:您有一个包含两列的数据框,“c”和“type”。您的目标是计算每个“c”的“type”值,并向数据框中添加大小为“c”的列。

方法 1(使用地图):

一种方法是使用 map() 函数,它将函数应用于 Series 中的每个值。在这种情况下,您可以将“c”的大小映射到数据框中相应的“c”值:

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')
a = df.groupby('c').size().reset_index(name='size')
a.index = a['c']
g['size'] = g['c'].map(a['size'])</code>
登录后复制

此方法有效,但涉及多个步骤和手动索引对齐。

方法2(使用Transform):

更直接的解决方案是使用pandas的transform()函数,它将函数应用于数据帧的每一行,返回一个与原始索引。您可以使用转换将“c”的大小直接添加到数据框:

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')
g['size'] = df.groupby('c')['type'].transform('size')</code>
登录后复制

这种方法消除了单独的大小计算和索引对齐的需要,从而产生更简洁和高效的解决方案。

以上是如何使用 df.groupby().transform() 有效组合分组数据框?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!