在 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中文网其他相关文章!