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

将未来日期添加到 DataFrame

将未来日期添加到 DataFrame

凤凰求蛊 2022-07-05 19:02:43
如何将未来日期添加到数据框中?此日期时间增量仅将增量添加到相邻列。import pandas as pdfrom datetime import timedeltadf = pd.DataFrame({    'date': ['2001-02-01','2001-02-02','2001-02-03', '2001-02-04'],    'Monthly Value': [100, 200, 300, 400]})df["future_date"] = df["date"] + timedelta(days=4)print(df)  date                future_date0 2001-02-01 00:00:00 2001-02-05 00:00:001 2001-02-02 00:00:00 2001-02-06 00:00:002 2001-02-03 00:00:00 2001-02-07 00:00:003 2001-02-04 00:00:00 2001-02-08 00:00:00所需的数据框:  date                future_date0 2001-02-01 00:00:00 2001-02-01 00:00:001 2001-02-02 00:00:00 2001-02-02 00:00:002 2001-02-03 00:00:00 2001-02-03 00:00:003 2001-02-04 00:00:00 2001-02-04 00:00:004                     2001-02-05 00:00:005                     2001-02-06 00:00:006                     2001-02-07 00:00:007                     2001-02-08 00:00:00
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以执行以下操作:


# set to timestamp

df['date'] = pd.to_datetime(df['date'])


# create a future date df

ftr =  (df['date'] + pd.Timedelta(4, unit='days')).to_frame()

ftr['Monthly Value'] = None


# join the future data

df1 = pd.concat([df, ftr], ignore_index=True)


        date Monthly Value

0 2001-02-01           100

1 2001-02-02           200

2 2001-02-03           300

3 2001-02-04           400

4 2001-02-05          None

5 2001-02-06          None

6 2001-02-07          None

7 2001-02-08          None


查看完整回答
反对 回复 2022-07-05
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

我发现这也有效:

df.append(pd.DataFrame({'date': pd.date_range(start=df.date.iloc[-1], periods= 4, freq='d', closed='right')}))



查看完整回答
反对 回复 2022-07-05
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

如果我理解正确,


我们可以使用您的日期的最小值和最大值 + 4 天创建一个新的数据框。


我们只是使用axis = 1将它连接回来。


df['date'] = pd.to_datetime(df['date']) 


fdates = pd.DataFrame(

    pd.date_range(df["date"].min(), df["date"].max() + pd.DateOffset(days=4))

,columns=['future_date'])


df_new = pd.concat([df,fdates],axis=1)

print(df_new[['date','future_date','Monthly Value']])


0 2001-02-01  2001-02-01          100.0

1 2001-02-02  2001-02-02          200.0

2 2001-02-03  2001-02-03          300.0

3 2001-02-04  2001-02-04          400.0

4        NaT  2001-02-05            NaN

5        NaT  2001-02-06            NaN

6        NaT  2001-02-07            NaN

7        NaT  2001-02-08            NaN


查看完整回答
反对 回复 2022-07-05
  • 3 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信