[英]Split one row into multiple rows of 6 hours data based on 15 mins time interval in pandas data frame
我想根據 pandas 數據幀中的 15 分鍾時間間隔將一行分成多行 6 小時數據
start_time end_time
0 2022-08-22 00:15:00 2022-08-22 06:15:00
我嘗試了一個小時的時間分割並使用了下面的代碼
result['start_time'] = result.apply(lambda d: pd.date_range(d['start_time'],
d['end_time'],
freq='h')[:-1],
axis=1)
這對我有用
result["start_time"][0]
Output:
DatetimeIndex(['2022-08-22 00:15:00', '2022-08-22 01:15:00',
'2022-08-22 02:15:00', '2022-08-22 03:15:00',
'2022-08-22 04:15:00', '2022-08-22 05:15:00'],
dtype='datetime64[ns]', freq='H')
現在我想要 15 分鍾時間間隔的頻率,所以它應該給我 24 個時間戳
嘗試: 15T
而不是h
result['start_time'] = result.apply(lambda d: pd.date_range(d['start_time'],
d['end_time'],
freq='15T')[:-1],
axis=1)
OUTPUT:
DatetimeIndex(['2022-08-22 00:15:00', '2022-08-22 00:30:00',
'2022-08-22 00:45:00', '2022-08-22 01:00:00',
'2022-08-22 01:15:00', '2022-08-22 01:30:00',
'2022-08-22 01:45:00', '2022-08-22 02:00:00',
'2022-08-22 02:15:00', '2022-08-22 02:30:00',
'2022-08-22 02:45:00', '2022-08-22 03:00:00',
'2022-08-22 03:15:00', '2022-08-22 03:30:00',
'2022-08-22 03:45:00', '2022-08-22 04:00:00',
'2022-08-22 04:15:00', '2022-08-22 04:30:00',
'2022-08-22 04:45:00', '2022-08-22 05:00:00',
'2022-08-22 05:15:00', '2022-08-22 05:30:00',
'2022-08-22 05:45:00', '2022-08-22 06:00:00'],
dtype='datetime64[ns]', freq='15T')
正如預期的那樣——你得到了24 個時間戳
from datetime import timedelta
df = pd.DataFrame({'start_time': ['2022-08-22 00:15:00'],'end_time': ['2022-08-22 06:15:00']})
df['start_time'] = pd.to_datetime(df['start_time'])
df['end_time'] = pd.to_datetime(df['end_time'])
df['start_time'] = df['start_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
df['end_time'] = df['end_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
# start_time end_time
# 0 2022-08-22 00:15:00 2022-08-22 06:15:00
new_df = pd.date_range(start=df['start_time'][0], end=df['end_time'][0], freq='15min')[:-1]
result_df = pd.DataFrame({'start_time': new_df, 'end_time': new_df + timedelta(minutes=15)})
output:
> result_df
start_time end_time
0 2022-08-22 00:15:00 2022-08-22 00:30:00
1 2022-08-22 00:30:00 2022-08-22 00:45:00
2 2022-08-22 00:45:00 2022-08-22 01:00:00
3 2022-08-22 01:00:00 2022-08-22 01:15:00
4 2022-08-22 01:15:00 2022-08-22 01:30:00
5 2022-08-22 01:30:00 2022-08-22 01:45:00
6 2022-08-22 01:45:00 2022-08-22 02:00:00
7 2022-08-22 02:00:00 2022-08-22 02:15:00
8 2022-08-22 02:15:00 2022-08-22 02:30:00
9 2022-08-22 02:30:00 2022-08-22 02:45:00
10 2022-08-22 02:45:00 2022-08-22 03:00:00
11 2022-08-22 03:00:00 2022-08-22 03:15:00
12 2022-08-22 03:15:00 2022-08-22 03:30:00
13 2022-08-22 03:30:00 2022-08-22 03:45:00
14 2022-08-22 03:45:00 2022-08-22 04:00:00
15 2022-08-22 04:00:00 2022-08-22 04:15:00
16 2022-08-22 04:15:00 2022-08-22 04:30:00
17 2022-08-22 04:30:00 2022-08-22 04:45:00
18 2022-08-22 04:45:00 2022-08-22 05:00:00
19 2022-08-22 05:00:00 2022-08-22 05:15:00
20 2022-08-22 05:15:00 2022-08-22 05:30:00
21 2022-08-22 05:30:00 2022-08-22 05:45:00
22 2022-08-22 05:45:00 2022-08-22 06:00:00
23 2022-08-22 06:00:00 2022-08-22 06:15:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.