参考其他行向熊猫数据框添加新行?

df:


End_Dt_Id Start_Date     End_Date

18AUG19   12-08-2019    18-08-2019  -- date format DD/MM/YYYY

25AUG19   19-08-2019    25-08-2019

01SEP19   26-08-2019    01-09-2019

08SEP19   02-09-2019    08-09-2019

15SEP19   09-09-2019    15-09-2019

22SEP19   16-09-2019    22-09-2019

12SEP19   23-09-2019    29-09-2019

我需要在我的数据框中再添加 4 周,这取决于我的 df 中的上周,例如上周将是这一行“29SEP19 23-09-2019 29-09-2019”,因为 max(End_Date),那里在我需要再增加四个星期之后,如输出所示。


df_输出:


End_Dt_Id Start_Date     End_Date

18AUG19   12-08-2019    18-08-2019  -- date format DD/MM/YYYY

25AUG19   19-08-2019    25-08-2019

01SEP19   26-08-2019    01-09-2019

08SEP19   02-09-2019    08-09-2019

15SEP19   09-09-2019    15-09-2019

22SEP19   16-09-2019    22-09-2019

29SEP19   23-09-2019    29-09-2019

05OCT19   30-09-2019    05-10-2019

12OCT19   06-10-2019    12-10-2019

19OCT19   13-10-2019    19-10-2019

26OCT19   20-10-2019    26-10-2019


慕田峪4524236
浏览 86回答 1
1回答

慕的地10843

我不确定我是否理解逻辑,但这提供了您正在寻找的输出:last_row = df.sort_values('End_Date')[-1:]new_rows = []start_date = last_row['Start_Date'].iloc[0]end_date = last_row['End_Date'].iloc[0]for i in range(1,5):    start_date = end_date + dt.timedelta(days=1)    end_date = end_date + dt.timedelta(days=7)    end_dt_id = dt.datetime.strftime(end_date, '%d%b%y').upper()    new_rows.append([end_dt_id,start_date, end_date])    df = pd.concat([    df,     pd.DataFrame(new_rows, columns=['End_Dt_Id', 'Start_Date', 'End_Date'])])for col in ['Start_Date', 'End_Date']:    df[col] = pd.to_datetime(df[col]).dt.strftime('%d-%m-%Y')退货:End_Dt_Id  Start_Date    End_Date  18AUG19  12-08-2019  18-08-2019  25AUG19  19-08-2019  25-08-2019  01SEP19  26-08-2019  01-09-2019  08SEP19  02-09-2019  08-09-2019  15SEP19  09-09-2019  15-09-2019  22SEP19  16-09-2019  22-09-2019  12SEP19  23-09-2019  12-09-2019  19SEP19  13-09-2019  19-09-2019  26SEP19  20-09-2019  26-09-2019  03OCT19  27-09-2019  03-10-2019  10OCT19  04-10-2019  10-10-2019
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python