【发布时间】:2019-10-09 19:20:59
【问题描述】:
对于每个值('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
【问题讨论】:
-
是否应该根据
x列应用计数? -
是的,选择第一行 X=1 和 [2015-12-30 22:30:00, 015-12-30 22:31:00] 这个时间范围包括另外两个 X=1 : [2015-12-30 22:30:15, 2015-12-30 22:30:45] 和 [2015-12-30 22:30:20,2015-12-30 22:30:20] 所以首先我们有 count = 3 的行(拥有 X=1 和另外两个)
-
看看编辑,我原谅了
x列在第一个答案上的匹配。干杯。
标签: python-3.x pandas datetime pandas-groupby