如何执行groupby follow by order by,然后在python/pandas中选择第一行

2024-10-02 00:33:47 发布

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

我有一个dataframe,我想按两列分组,然后按第三列排序,然后从每组中选择第一行。这是我用的密码

first= df.groupby(['EMPLID','EMPL_RCD']).apply(lambda x: x.sort_values(by = ['EFFDT','EFFSEQ'], ascending = True)).first()

但是我在运行它时遇到了以下错误

^{pr2}$

这里少了什么?在


Tags: lambda密码dataframedfby排序sortfirst
1条回答
网友
1楼 · 发布于 2024-10-02 00:33:47

您可以sort_values然后drop_duplicates

res = df.sort_values(['EFFDT','EFFSEQ'])\
        .drop_duplicates(subset=['EMPLID','EMPL_RCD'])

或者,您可以排序,然后使用groupby+first

^{pr2}$

您的代码无法工作,因为您将first应用于数据帧而不是GroupBy对象。您需要将first作为聚合函数传递给groupby。在

相关问题 更多 >

    热门问题