这是数据格式日期列显示的第一个条目的日期,我试图得到在前3个月错过的到期日的最大值,我有30个月的数据,我需要在每个ID的前3个月错过的最大到期日
zbdgwd5y1#
考虑您的 Dataframe ,如图所示:
import pandas as pd df = pd.DataFrame({ 'ID':[100,100,100,100,100, 101,101,101,101, 101], 'Entry Date':['2020-04-10','2020-05-10','2020-06-10','2020-07-10','2020-08-10', '2020-07-25','2020-08-25','2020-09-25','2020-10-25','2020-11-25'], 'Due missed':[0,0,7,0,5, 9,1,5,7,10] }) df['Entry Date'] = df['Entry Date'].apply(pd.to_datetime)
您需要做的是对 Dataframe 进行排序,使前3个月位于每个ID的顶部:
df.sort_values(['ID', 'Entry Date'], inplace=True)
然后,您可以按ID分组并选择前3行(使用head(3)),然后选择这三行中的最大值(使用['Due missed'].max()):
head(3)
['Due missed'].max()
df.groupby('ID').apply(lambda x: x.head(3)['Due missed'].max())
1条答案
按热度按时间zbdgwd5y1#
考虑您的 Dataframe ,如图所示:
您需要做的是对 Dataframe 进行排序,使前3个月位于每个ID的顶部:
然后,您可以按ID分组并选择前3行(使用
head(3)
),然后选择这三行中的最大值(使用['Due missed'].max()
):