繁体   English   中英

如何在 Python 中创建日期范围并转换为 DataFrame

[英]How to make a Date Range in Python and convert into DataFrame

假设我有两个 Date 输入: 2020-01-20 11:35:002020-01-25 08:00:00

我想要一个 output DataFrame 为:

   time1                          time2  
-------------------------------------------
2020-01-20 11:35:00  |  2020-01-21 00:00:00  
2020-01-21 00:00:00  |  2020-01-22 00:00:00  
2020-01-22 00:00:00  |  2020-01-23 00:00:00  
2020-01-23 00:00:00  |  2020-01-24 00:00:00  
2020-01-24 00:00:00  |  2020-01-25 00:00:00  
2020-01-25 00:00:00  |  2020-01-25 08:00:00  

您可以将date_range与两个日期一起使用,然后创建 dataframe。

d1 = pd.to_datetime('2020-01-20 11:35:00')
d2 = pd.to_datetime('2020-01-25 08:00:00')

l = pd.date_range(d1.date(), d2.date(), freq='d').tolist()[1:] #remove the first date
df = pd.DataFrame({'time1':[d1] + l, 'time2':l + [d2]})
print (df)
                time1               time2
0 2020-01-20 11:35:00 2020-01-21 00:00:00
1 2020-01-21 00:00:00 2020-01-22 00:00:00
2 2020-01-22 00:00:00 2020-01-23 00:00:00
3 2020-01-23 00:00:00 2020-01-24 00:00:00
4 2020-01-24 00:00:00 2020-01-25 00:00:00
5 2020-01-25 00:00:00 2020-01-25 08:00:00

没有内置的方法来做到这一点,我们可以使用ilocpd.date_range来分配第一个和最后一个日期并生成您的日期范围。

t1 = pd.Timestamp('2020-01-20 11:35:00')
t2 = pd.Timestamp('2020-01-25 08:00:00')

df = pd.DataFrame({'Time1' : pd.date_range(t1.date(),t2.date())})
df = df.assign(Time2 = df['Time1'] + pd.DateOffset(days=1))

df.iloc[0,0] = t1
df.iloc[-1,1] = t2

print(df)

               Time1               Time2
0 2020-01-20 11:35:00 2020-01-21 00:00:00
1 2020-01-21 00:00:00 2020-01-22 00:00:00
2 2020-01-22 00:00:00 2020-01-23 00:00:00
3 2020-01-23 00:00:00 2020-01-24 00:00:00
4 2020-01-24 00:00:00 2020-01-25 00:00:00
5 2020-01-25 00:00:00 2020-01-25 08:00:00

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM