我有一个数据框,其数据如下:
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')
这实现了我的结果,但速度很慢。有没有更快的方法呢?
答案 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