索引错误:列状态已选定

2024-10-03 02:38:20 发布

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

具有如下所示的数据帧数据

   InsuranceId InsuranceStatus  Date
0  Ins1234     DuePayment       2020-06-07 23:59:43.123456+00:00
1  Ins1234     Successful       2019-06-07 23:59:43.123456+00:00
2  Ins1234     Successful       2018-06-07 23:59:43.123456+00:00
3  Ins5678     DuePayment       2020-07-07 22:59:32.123421+00:00
4  Ins5678     Successful       2019-07-07 22:59:32.123421+00:00
5  Ins5678     Successful       2018-07-07 22:59:32.123421+00:00

正在尝试按InsuranceId和max(日期)基于组创建行数/排名

df['RowNum'] = df.groupby('InsuranceId')['InsuranceStatus']['Date'].rank(method="first", ascending=True)

and 

df['RowNum'] = df.groupby(by=['InsuranceId'])['InsuranceStatus']['Date'].transform(lambda x: x.rank())

通过引用SQL-like window functions in PANDAS: Row Numbering in Python Pandas Dataframe

Error: Index Error: Columns status already selected 

试图获得低于预期的产出

   InsuranceId InsuranceStatus  Date                                RowNum
0  Ins1234     DuePayment       2020-06-07 23:59:43.123456+00:00    1
1  Ins1234     Successful       2019-06-07 23:59:43.123456+00:00    2
2  Ins1234     Successful       2018-06-07 23:59:43.123456+00:00    3
3  Ins5678     DuePayment       2020-07-07 22:59:32.123421+00:00    1
4  Ins5678     Successful       2019-07-07 22:59:32.123421+00:00    2
5  Ins5678     Successful       2018-07-07 22:59:32.123421+00:00    3

有什么我想补充的吗。有什么建议吗

最终输出:

   InsuranceId InsuranceStatus  Date                                
   Ins1234     DuePayment       2020-06-07 23:59:43.123456+00:00    
   Ins5678     DuePayment       2020-07-07 22:59:32.123421+00:00    

Tags: 数据indfdateerrormaxgroupbyrank
1条回答
网友
1楼 · 发布于 2024-10-03 02:38:20

使用^{}。只需传递要分组的值,并对需要排序的列进行排序

df['Rank'] = df.groupby(by=['InsuranceId'])['Date'].rank(method='max',ascending=False)
df[df['Rank']==1]

输出:

InsuranceId InsuranceStatus  Date                                
Ins1234     DuePayment       2020-06-07 23:59:43.123456+00:00    
Ins5678     DuePayment       2020-07-07 22:59:32.123421+00:00    

相关问题 更多 >