我有一个数据框,其中包含以下数据:
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
我的开始日期等于“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')
这达到了我的结果,但是非常慢。有没有更快的方法来做到这一点?
最佳答案
你可以试试
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
关于Pandas:如何在不使用for循环的情况下将日期列中每个条目的日期增加一定天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46083982/