gpt4 book ai didi

python - 使用 Panda 的 groupby 只是为了删除重复的项目

转载 作者:行者123 更新时间:2023-11-28 21:48:21 25 4
gpt4 key购买 nike

我确定这是一个基本问题,但我无法在此处找到正确的路径。

让我们假设一个这样的数据框,告诉我们每个人每周吃多少水果:

    Name    Fruit    Amount
1 Jack Lemon 3
2 Mary Banana 6
3 Sophie Lemon 1
4 Sophie Cherry 10
5 Daniel Banana 2
6 Daniel Cherry 4

现在假设我只想使用 matplotlib 创建一个条形图,以显示整个城镇每周食用的每种水果的总量。为此,我必须将水果分组

在他的书中,pandas 作者将 groupby 描述为 split-apply-combine 操作的第一部分: enter image description here因此,首先 groupby 将 DataFrame 转换为 DataFrameGroupBy 对象。然后,使用 sum 之类的方法,将结果合并到一个新的 DataFrame 对象中。完美,我现在可以创建我的 Orchard 了。

但我面临的问题是当我不想sumdiff 或对每个组成员应用任何操作时会发生什么。当我只想使用 groupby 来保留每个水果类型只有一行的 DataFrame 时会发生什么(当然,对于像这样简单的示例,我可以获取具有 unique 的水果列表,但这不是重点)。

如果我这样做,groupby 的返回是一个 DataFrameGroupBy 对象,许多使用 DataFrame 的操作不适用于 DataFrameGroupBy.

这个问题让我很头疼,我确信它很容易避免。如何在不应用任何聚合函数的情况下从 groupby 获取 DataFrame?有没有甚至不使用 groupby 的不同解决方法,我由于在翻译中丢失而丢失了它?

最佳答案

如果你只想要一些行,你可以使用 groupby-first() 的组合+ reset_index - 它将保留每组的第一行:

import pandas as pd

df = pd.DataFrame({'a': [1, 1, 2], 'b': [1, 2, 3]})
>>> df.groupby(df.a).first().reset_index()
a b
0 1 1
1 2 3

关于python - 使用 Panda 的 groupby 只是为了删除重复的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35500425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com