Pandas使用groupby()时是否会保留顺序?

Posted zerotensor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas使用groupby()时是否会保留顺序?相关的知识,希望对你有一定的参考价值。

PythonPandas:使用groupby()和agg()时是否保留了顺序?

看到这个增强问题

简短的答案是肯定的,groupby会保留传入的顺序。你可以用你的例子来证明这一点:

df = pd.DataFrame({‘A‘: [‘group1‘, ‘group1‘, ‘group2‘, ‘group2‘, ‘group3‘, ‘group3‘],
                   ‘B‘: [10, 12, 10, 25, 10, 12],
                   ‘C‘: [100, 102, 100, 250, 100, 102]})

>>> df
[output]
        A   B    C
0  group1  10  100
1  group1  12  102
2  group2  10  100
3  group2  25  250
4  group3  10  100
5  group3  12  102
In [20]: df.sort_index(ascending=False).groupby(‘A‘).agg([np.mean, lambda x: x.iloc[1] ])
Out[20]: 
           B             C         
        mean <lambda> mean <lambda>
A                                  
group1  11.0       10  101      100
group2  17.5       10  175      100
group3  11.0       10  101      100

顺便提一句,如果要安全的获得组的第二个值,可以使用df.groupby(‘A‘).nth(1)

以上是关于Pandas使用groupby()时是否会保留顺序?的主要内容,如果未能解决你的问题,请参考以下文章

进行 groupby 时保留其他列

将列的名称保留在 groupby 中,并在 pandas 数据框中使用 sum

为啥 pandas.groupby 保留密钥?

Pandas groupby 在保留多个聚合的组内排序

Pandas groupby:如何在使用两列创建 groupby 时以正确的顺序对工作日进行排序?

Pandas groupby 使用两次应用时会复制组