Pandas:如何在不使用for循环的情况下将日期列中每个条目的日期增加一定天数

时间:2017-09-06 20:39:30

标签: pandas datetime dataframe

我有一个数据框,其数据如下:

Date            Day     Sometext
2017-02-02       10     abcd
2017-02-02       11     efgh
2017-02-02       12     ijhk
2017-02-02       13     asbg
2017-02-02       14     asg
:                 :
:                 :
:                 :
2017-02-02       30     aslk

我需要获取数据框,如下所示:

Date            Day     Sometext
2017-02-12       10     abcd
2017-02-13       11     efgh
2017-02-14       12     ijhk
2017-02-15       13     asbg
2017-02-16       14     asg
:                 :
:                 :
:                 :
2017-03-04       30     aslkj

我的startDate等于" 2017-02-02"。 现在我正在做的是:

epi_df['Date'] = startDate
for i,rowData in epi_df.iterrows():
    epi_df['Date'].iloc[i] = startDate + pd.to_timedelta(rowData['Day'], unit='d')

这实现了我的结果,但速度很慢。有没有更快的方法呢?

1 个答案:

答案 0 :(得分:3)

你可以尝试

df['Date'] = pd.to_datetime(df['Date']) + pd.to_timedelta(df['Day'], unit='d')

你得到了

    Date        Day Sometext
0   2017-02-12  10  abcd
1   2017-02-13  11  efgh
2   2017-02-14  12  ijhk
3   2017-02-15  13  asbg
4   2017-02-16  14  asg