为了账号安全,请及时绑定邮箱和手机立即绑定

根据 groupby 结果有条件地增加字符串 ID

根据 groupby 结果有条件地增加字符串 ID

慕仙森 2021-10-12 16:14:14
我是 python 新手我有以下 df    ClientID    DOB LostDate    Category    ReportedDateAPJ5L9C 1975    3/13/2017   Ungrouped   3/23/2017APJ5L9C 1993    7/25/2014   Ungrouped   3/5/2017BKL1N9C 1981    3/22/2017   Ungrouped   3/29/2017BKL1N9C 1981    1/31/2017   Ungrouped   3/31/2017BMO3K9C 1982    3/15/2017   Ungrouped   3/27/2017BOM1N9C 1981    3/16/2017   Ungrouped   3/27/2017K9E6JSC 2000    3/15/2017   Ungrouped   4/3/2017K9E6JSC 1994    1/14/2017   Ungrouped   3/24/2017M12L0A93    1986    3/16/2017   Ungrouped   3/23/2017M12L0A93    1981    1/17/2017   Ungrouped   3/29/2017M12L0A94    1981    3/17/2017   Ungrouped   3/29/2017MCI6A92 1993    3/24/2017   Ungrouped   3/24/2017N9E4HSC 2000    3/30/2017   Ungrouped   4/3/2017以下代码运行良好,但我无法将其放入循环中,以便使用增量 ID(基本上是客户端 ID 与 _1、_2 等的串联)写入 Cat。期望的结果是,如果任何组中的 LostDate 和 ReporteDate 之间的第一个差异被记录为 ClientID_1,则已分类的组中的 LostDate 和 ReporteDate 之间的任何后续差异都会增加到下一个未使用的 ID。假设我们有 ID_2,它转到 ID_3,如果 ID_5 是最后一个,它转到 ID_6 等等    #Finding the earliest lost date reported in a groupmask = df['Category'] == 'Ungrouped'df.loc[mask, 'LostDatef'] = df.loc[mask].groupby(['ClientID', 'DOB'])['LostDate'].transform(lambda x:x.min())df['TimeDiffinDAYS'] = (df['ReportedDate']-df['LostDatef']).dt.days#Iterate and group INCREMENTALLY DEFINING ClientIDfor row in df['TimeDiffinDAYS']:    if row <=7:#def assessmentsort(kala):        df.loc['Category'] = df ['GHJY'].apply(lambda x: '{}'"_1".format(x))     else:        df.loc[df.TimeDiffinDAYS > 50, 'Category'] = df ['GHJY'].apply(lambda x: '{}'.format('Ugrouped'))print df我想要的结果:ClientID    DOB LostDate    Category    ReportedDateAPJ5L9C 1975    3/13/2017   APJ5L9C_1   3/23/2017APJ5L9C 1993    7/25/2014   APJ5L9C_2   3/5/2017BKL1N9C 1981    3/22/2017   BKL1N9C-1   3/29/2017BKL1N9C 1981    1/31/2017   BKL1N9C-2   3/31/2017BMO3K9C 1982    3/15/2017   BMO3K9C_1   3/27/2017BOM1N9C 1981    3/16/2017   BOM1N9C_1   3/27/2017K9E6JSC 2000    3/15/2017   K9E6JSC_1   4/3/2017K9E6JSC 1994    1/14/2017   K9E6JSC_2   3/24/2017这可能吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号