找到多重索引中某个级别值最小的行

2024-09-25 00:36:23 发布

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

因此,我有一个带有多重索引的数据帧,如下所示:

                               info1 info2       info3
abc-8182 2012-05-08 10:00:00       1   6.0     "yeah!"
         2012-05-08 10:01:00       2  25.0        ":("
pli-9230 2012-05-08 11:00:00       1  30.0  "see yah!"    
         2012-05-08 11:15:00       1  30.0  "see yah!"    

...

索引是一个id和一个datetime,表示有关该id的信息何时被记录。我们需要做的是为每个身份证找到最早的记录。我们从dataframe方法中尝试了很多选项,但最终通过循环dataframe来实现:

^{pr2}$

这给了我:

                                               x0  x1        x2
('abc-8182', <Timestamp: 2012-05-08 10:00:00>)  1   6     yeah!
('pli-9230', <Timestamp: 2012-05-08 11:00:00>)  1  30  see yah!

我觉得必须有一个简单的“pandas惯用的”方法来做到这一点,而不是像这样在数据框中循环。有?:)

谢谢。在


Tags: 数据方法iddataframedatetime记录timestampabc
1条回答
网友
1楼 · 发布于 2024-09-25 00:36:23

要获取每组中的第一个项目,可以执行以下操作:

df.reset_index(level=1).groupby(level=0).first()

它将在组按groupby分组之前将datetime字段放到列中,因此它将保留在结果中的dataframe中。在

如果需要确保保留最早的时间,可以在调用first之前进行排序:

^{pr2}$

相关问题 更多 >