首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每x行加1天

每x行加1天
EN

Stack Overflow用户
提问于 2021-02-03 09:08:05
回答 2查看 82关注 0票数 4

我想每3行增加一天。

日期

代码语言:javascript
复制
start_date = "01/02/21"

date_1 = datetime.datetime.strptime(start_date, "%d/%m/%y")
end_date = date_1 + datetime.timedelta(days=1)
df_4["date"] = end_date

想要的输出

代码语言:javascript
复制
A   date
1   01/02/21
2   01/02/21
3   01/02/21
4   02/02/21 # add 1 day
5   02/02/21
6   02/02/21
7   03/02/21 # add 1 day
8   03/02/21
9   03/02/21
10  04/02/21 # add 1 day
11  04/02/21
12  04/02/21
...

现在,它为所有行增加1天,而不是每3行再增加一天。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-03 09:42:15

如果需要从start_date开始的每3个值,添加由np.arange生成的具有DataFrame长度的时间差天数,那么类似于循环解决方案的速度更快:

代码语言:javascript
复制
start_date = "01/02/21"

date_1 = datetime.datetime.strptime(start_date, "%d/%m/%y")
df["date"] = date_1 + pd.to_timedelta(np.arange(len(df)) // 3, unit='d')


print (df)
     A       date Note
0    1 2021-02-01  NaN
1    2 2021-02-01  NaN
2    3 2021-02-01  NaN
3    4 2021-02-02  add
4    5 2021-02-02  NaN
5    6 2021-02-02  NaN
6    7 2021-02-03   ad
7    8 2021-02-03  NaN
8    9 2021-02-03  NaN
9   10 2021-02-04  add
10  11 2021-02-04  NaN
11  12 2021-02-04  NaN

详细信息

代码语言:javascript
复制
print (np.arange(len(df)) // 3)
[0 0 0 1 1 1 2 2 2 3 3 3]

print (pd.to_timedelta(np.arange(len(df)) // 3, unit='d'))
TimedeltaIndex(['0 days', '0 days', '0 days', '1 days', '1 days', '1 days',
                '2 days', '2 days', '2 days', '3 days', '3 days', '3 days'],
               dtype='timedelta64[ns]', freq=None)
票数 2
EN

Stack Overflow用户

发布于 2021-02-03 09:36:47

下面的代码片段将在每3行之后(如add_every_x_rows所指定的)在行中将日期增加一天。

代码语言:javascript
复制
df['Date'] = [datetime.datetime.strptime(str(x), "%d/%m/%y").date() for x in df['Date']]

add_every_x_rows = 3

day_counter = 0
for i,row in df.iterrows():
    day_counter+=1
    if (day_counter == add_every_x_rows +1):
        df.at[i,'Date'] = row['Date'] + datetime.timedelta(days=1)
        day_counter = 1

如果稍后将add_every_x_rows的值更改为4,它将开始在每四行上增加一天的日期。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66024328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档