我有一个数据框,其中包含一列日期,其格式如下:
“ 2016年1月1日”
我想创建一个从该日期开始到“ 1/2/2016”,“ 1/3/2016”等的for循环。
我从以下Python代码开始:
df = pd.read_csv('myfile.csv')
df['dates'] = pd.to_datetime(df['dates'])
将日期格式改为:“ 01-01-2016” 下一个:
start_date = '01-01-2016'
最后是for循环:
for j in range (1,30)
start_date + j...
但是,您不能为该日期格式添加整数。 我应该在for循环中做什么,直到第二天?
答案 0 :(得分:1)
我不确定您的最终结果是什么,但是您可以使用pd.date_range
:
start_date = pd.to_datetime('01-01-2016')
for j in pd.date_range(start_date, periods=30):
print(j)
哪个给你:
2016-01-01 00:00:00
2016-01-02 00:00:00
2016-01-03 00:00:00
2016-01-04 00:00:00
2016-01-05 00:00:00
2016-01-06 00:00:00
...
答案 1 :(得分:1)
如果您是大熊猫的爱人,则将日期增加一天:
df['dates'].iloc[0] +pd.to_timedelta(1,'d')
或者您可以尝试以下方法:
from datetime import timedelta
df['dates'].iloc[0] + timedelta(days=1) #on the left side is the date you want to increase
中找到更多信息
答案 2 :(得分:0)
通过使用numpy时间增量,您可以添加日期或从时间戳中减去
import numpy as np
import pandas as pd
pd.to_datetime('01-01-2016') +np.timedelta64(1,'D')
答案 3 :(得分:0)
您可以使用timedelta()
Import datetime
for j in range (1,30):
start_date + datetime.timedelta(days=1)
这里是文档的LINK供您参考