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

标签 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

我的开始日期等于“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/

相关文章:

python-3.x - 逐列特定值计数

c# - 无法在 C# 中将字符串解析为精确的日期时间

python - Pandas:将 DataFrameGroupBy 对象转换为所需格式

python - 将函数应用于 pandas 中的 loc 调用会导致底层数据帧发生更改吗?

python - 使用 seaborn pointplot 更改日期格式

c# - DateTime 在 SQL Server 中不起作用

sql-server - 在 T-SQL 中指定给定日期的正确方法

python - 如何将列表数据捕获到数据框中

r - 如何在R中将Ensembl ID转换为基因符号?

python - 对 Pandas 系列进行排序