Для каждого значения (столбец 'X') у нас есть интервал времени, который определен как ['T1', 'T2']:
df = pd.DataFrame({'X': [1, 1, 1, 3, 3, 3],
'T1': ['2015-12-30 22:30:00',
'2015-12-30 22:30:15',
'2015-12-30 22:30:20',
'2015-11-30 23:40:00',
'2015-11-30 23:42:00',
'2015-11-30 23:40:00'],
'T2': ['2015-12-30 22:31:00',
'2015-12-30 22:30:45',
'2015-12-30 22:30:20',
'2015-11-30 23:43:00',
'2015-11-30 23:42:50',
'2015-11-30 23:44:00'],
})
X T1 T2
0 1 2015-12-30 22:30:00 2015-12-30 22:31:00
1 1 2015-12-30 22:30:15 2015-12-30 22:30:45
2 1 2015-12-30 22:30:20 2015-12-30 22:30:20
3 3 2015-11-30 23:40:00 2015-11-30 23:43:00
4 3 2015-11-30 23:42:00 2015-11-30 23:42:50
5 3 2015-11-30 23:40:00 2015-11-30 23:44:00
Я хочу посчитать те же значения ('X') временные рамки которого (или равны) временным рамкам, определенным для этого значения, поэтому я хочу получить следующий результат:
df = pd.DataFrame({'X': [1, 1, 1, 3, 3, 3],
'T1': ['2015-12-30 22:30:00',
'2015-12-30 22:30:15',
'2015-12-30 22:30:20',
'2015-11-30 23:40:00',
'2015-11-30 23:42:00',
'2015-11-30 23:40:00'],
'T2': ['2015-12-30 22:31:00',
'2015-12-30 22:30:45',
'2015-12-30 22:30:20',
'2015-11-30 23:43:00',
'2015-11-30 23:42:50',
'2015-11-30 23:44:00'],
'count': [3, 2, 1, 2, 1, 3],
})
X T1 T2 count
0 1 2015-12-30 22:30:00 2015-12-30 22:31:00 3
1 1 2015-12-30 22:30:15 2015-12-30 22:30:45 2
2 1 2015-12-30 22:30:20 2015-12-30 22:30:20 1
3 3 2015-11-30 23:40:00 2015-11-30 23:43:00 2
4 3 2015-11-30 23:42:00 2015-11-30 23:42:50 1
3 2015-11-30 23:40:00 2015-11-30 23:44:00 3