如何遍历数据框中的日期?

时间:2018-09-11 17:58:43

标签: python pandas datetime dataframe

我有一个数据框,其中包含一列日期,其格式如下:

“ 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循环中做什么,直到第二天?

4 个答案:

答案 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

您可以在https://stackoverflow.com/a/6871054/8433650

中找到更多信息

答案 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供您参考