
這是資料格式日期列顯示第一個輸入日期,我試圖獲得前 3 個月內錯過的最大應付款,我有 30 個月的資料,我需要每個 ID 在前 3 個月內錯過的最大會費
uj5u.com熱心網友回復:
考慮到您的資料框,如圖所示:
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)
您要做的是對資料框進行排序,以便前 3 個月位于每個 ID 的頂部:
df.sort_values(['ID', 'Entry Date'], inplace=True)
然后您可以按 ID 分組并選擇前 3 行(使用head(3)),然后選擇這三行的最大值(使用['Due missed'].max()):
df.groupby('ID').apply(lambda x: x.head(3)['Due missed'].max())
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521359.html
