I have this data frame:
data_time = {'DateTime': ['2019-01-01 00:32:39-04:00','2019-01-01 00:34:52-04:00','2019-01-01 01:01:02-04:00','2019-01-01 01:05:10-04:00','2019-01-01 01:01:11-04:00'],
'Bldg_Code': ['BLDG_A','BLDG_B','BLDG_C','BLDG_A','BLDG_E'],
'Bldg_Name': ['Building A','Building B','Building C','Building A','Building D']}
DateTime Bldg_Code Bldg_Name
0 2019-01-01 00:32:39-04:00 BLDG_A Building A
1 2019-01-01 00:34:52-04:00 BLDG_B Building B
2 2019-01-01 01:01:02-04:00 BLDG_C Building C
3 2019-01-01 01:05:10-04:00 BLDG_A Building A
4 2019-01-01 01:01:11-04:00 BLDG_E Building D
I want to group them by 15 minutes intervals, while also showing other time intervals without any data. Here's the result that I'm looking for:
DateTime Bldg_Code Bldg_Name count
0 2019-01-01 00:00:00-04:00 BLDG_A Building A 0
1 2019-01-01 00:00:00-04:00 BLDG_B Building B 0
2 2019-01-01 00:00:00-04:00 BLDG_C Building C 0
3 2019-01-01 00:00:00-04:00 BLDG_D Building D 0
4 2019-01-01 00:15:00-04:00 BLDG_A Building A 0
5 2019-01-01 00:15:00-04:00 BLDG_B Building B 0
6 2019-01-01 00:15:00-04:00 BLDG_C Building C 0
7 2019-01-01 00:15:00-04:00 BLDG_D Building D 0
8 2019-01-01 00:30:00-04:00 BLDG_A Building A 1
9 2019-01-01 00:30:00-04:00 BLDG_B Building B 1
10 2019-01-01 00:30:00-04:00 BLDG_C Building C 0
11 2019-01-01 00:30:00-04:00 BLDG_D Building D 0
12 2019-01-01 00:45:00-04:00 BLDG_A Building A 0
13 2019-01-01 00:45:00-04:00 BLDG_B Building B 0
14 2019-01-01 00:45:00-04:00 BLDG_C Building C 0
15 2019-01-01 00:45:00-04:00 BLDG_D Building D 0
16 2019-01-01 01:00:00-04:00 BLDG_A Building A 1
17 2019-01-01 01:00:00-04:00 BLDG_B Building B 0
18 2019-01-01 01:00:00-04:00 BLDG_C Building C 1
19 2019-01-01 01:00:00-04:00 BLDG_D Building D 1
Here's my code so far:
data_time_df.groupby([
pd.Grouper(freq='15T', key='DateTime'),
'Bldg_Code',
'Bldg_Name'
]).agg(total_swipes=('DateTime', 'count')).sort_values('DateTime')
As you can see, my code only groups and shows existing data only.
total_swipes
DateTime Bldg_Code Bldg_Name
2019-01-01 00:30:00-04:00 BLDG_A Building A 1
BLDG_B Building B 1
2019-01-01 01:00:00-04:00 BLDG_A Building A 1
BLDG_C Building C 1
BLDG_E Building D 1