Как сделать диапазон дат в Python и преобразовать в DataFrame - PullRequest
1 голос
/ 18 июня 2020

Предположим, у меня есть два ввода даты: 2020-01-20 11: 35: 00 и 2020-01-25 08: 00: 00 .

Мне нужен выходной 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  

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

нет встроенного способа сделать это, мы можем использовать iloc и pd.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
2 голосов
/ 18 июня 2020

Вы можете использовать date_range с обеими датами, а затем создать фрейм данных.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...