Python 如何在数据帧中迭代日期?

Python 如何在数据帧中迭代日期?,python,pandas,datetime,dataframe,Python,Pandas,Datetime,Dataframe,我有一个数据框,它有一列日期,格式如下: “2016年1月1日” 我想创建一个从该日期开始到“2016年1月2日”、“2016年1月3日”的for循环 我从以下Python代码开始: df = pd.read_csv('myfile.csv') df['dates'] = pd.to_datetime(df['dates']) 将日期格式转换为:“01-01-2016” 下一步: 最后,for循环: for j in range (1,30) start_date + j... 当然

我有一个数据框,它有一列日期,格式如下:

“2016年1月1日”

我想创建一个从该日期开始到“2016年1月2日”、“2016年1月3日”的for循环

我从以下Python代码开始:

df = pd.read_csv('myfile.csv')
df['dates'] = pd.to_datetime(df['dates'])
将日期格式转换为:“01-01-2016” 下一步:

最后,for循环:

for j in range (1,30)
    start_date + j...
当然,您不能将整数添加到该日期格式中。
在for循环中,我应该怎么做才能转到第二天?

我不确定您的最终结果是什么,但您可以使用
pd.date\u 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
...

通过使用numpy time delta,您可以添加日期,也可以从时间戳中减去日期

import numpy as np
import pandas as pd
pd.to_datetime('01-01-2016') +np.timedelta64(1,'D')

您可以使用
timedelta()


如果你是熊猫的情人,这里有一份文件供你参考

将日期延长一天:

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

你可以在这里找到更多的信息。Timedelta检查一下,如果我在解释器中尝试,或者作为python脚本,下面的一些其他答案似乎对我有用。如果我使用Jupyter笔记本,它们就不起作用,这正是我希望使用的(尽管我可以不用它);知道为什么吗?我在Cocalc上使用了Jupyter。我没有使用Jupyter,所以我不确定,但是出现了什么错误?我得到:“TypeError:periods必须是一个数字,得到30”(我使用了您的确切代码行)。在脚本中工作很好,在Jupyter中不工作。这很奇怪。。。根据,如果参数是非数字的,则应该显示该错误,但是如果传递它,我不知道为什么会得到它。它似乎将
30
读作字符串或类似的东西。。。我希望能多帮点忙,但我被难倒了
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