如何在 groupby 操作期间维护 Pandas DataFrame 中的其他列?

Barbara Streisand
发布: 2024-10-27 09:09:03
原创
678 人浏览过

How can I maintain other columns in a Pandas DataFrame during a groupby operation?

在 Groupby 操作期间维护其他列

在 pandas 数据帧上执行 groupby 操作时,通常需要保留不属于的列参与分组或聚合过程。默认情况下,操作完成后将删除这些其他列。如果保留的列包含有价值的信息,这可能会出现问题。

考虑以下数据框:

    item    diff   otherstuff
   0   1       2            1
   1   1       1            2
   2   1       3            7
   3   2      -1            0
   4   2       1            3
   5   2       4            9
   6   2      -6            2
   7   3       0            0
   8   3       2            9
登录后复制

如果我们按“item”列对数据框进行分组并找到“diff”列的最小值,结果数据框将如下所示:

    item   diff
   0   1      1           
   1   2     -6           
   2   3      0                 
登录后复制

请注意,“otherstuff”列已被删除。要保留此列,我们可以使用 idxmin() 方法获取最小差异元素的索引,然后选择这些元素:

>>> df.loc[df.groupby("item")["diff"].idxmin()]
   item  diff  otherstuff
1     1     1           2
6     2    -6           2
7     3     0           0

[3 rows x 3 columns]
登录后复制

另一种方法是按“diff”对数据框进行排序" 列,然后获取每个项目组中的第一个元素:

>>> df.sort_values("diff").groupby("item", as_index=False).first()
   item  diff  otherstuff
0     1     1           2
1     2    -6           2
2     3     0           0

[3 rows x 3 columns]
登录后复制

这两种方法都会产生所需的结果,同时保留“otherstuff”列。请记住,即使行内容相同,结果索引也可能不同。

以上是如何在 groupby 操作期间维护 Pandas DataFrame 中的其他列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板