如何用多级索引对pandas系列进行groupby和sum?

2024-09-29 23:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为busyness的Series对象,它是通过以下方式从DataFrames创建的:

entries = last.ENTRIES - first.ENTRIES
exits   = last.EXITS   - first.EXITS
busyness = entries + exits

其中lastfirst是带有列的数据帧。以下是busyness的外观:

^{pr2}$

我需要执行一个聚合,类似于以下内容:

ipdb> busyness.groupby('STATION').sum()
*** KeyError: 'STATION'

如何使用一个Series对象来实现这一点。我习惯于处理数据帧。谢谢你的帮助!在


Tags: 数据对象方式seriesfirstdataframes外观entries
3条回答

因为我们有一个多级索引,所以在构造DataFrame时需要调用reset_index,如下所示:

ipdb> import pandas as pd
ipdb> df = pd.DataFrame(busyness).reset_index()
ipdb> summed = df.groupby('STATION').sum()
ipdb> summed.head()
                   0
STATION
1 AV           48949
103 ST         51262
103 ST-CORONA  32165
104 ST          5612
110 ST         21252

你可以用^{}乘以4。Multiindexpython0开始,所以level=3):

summed = df.groupby(level=3).sum()

由于多索引级别有名称,因此可以在调用groupby时按名称指定级别:

busyness.groupby(level='STATION').sum()

相关问题 更多 >

    热门问题