我有一个dataframe,看起来像这样:
| 卷码|起始日期|至今|卷_1|卷_2|卷_3|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 0|2019 -01- 22 00:00:00|2019 -01- 22 00:00:00|八|四|七|
| 1|2022-01-01 01:00:00|2019 -01- 12 01:01:59|0|六|五|
| 1|2022-01-01 02:00:00|2019 -01- 12 02:19:59|10个|九|十四岁|
| 二|2022-01-01 03:00:00|2019 -01-01 03:59:59|0|十一|三|
| 三|2022-01-01 04:00:00|2019 -01- 22 01:01:01|十三|二|1|
这个dataframe是一个透视表,它计算每个Volume代码(Volume_x)在不同时间间隔内的发生次数。我们有另一个表,它有datetime,我需要知道在前一个小时内辅助表的发生次数。
例如,对于Volume_2中的日期时间2022-01-01 03:16:43,我们将减去一个小时,因此02:16:43,并在主 Dataframe 中查找它,这将在该时间范围内给予我们9次。我做了以下操作:
s = pd.IntervalIndex.from_arrays(df['from_date'] - pd.Timedelta(1, 'hour'),
df['to_date'] - pd.Timedelta(1, 'hour'))
它对一个示例有效,但现在我不知道为什么它会引发以下错误:
ValueError: left side of interval must be <= right side
正如你在表中看到的,from_date
总是〈= than to_date
,所以我不明白为什么它会失败。
1条答案
按热度按时间idfiyjo81#
您可以在
boolean indexing
中测试更大值的真实的数据:工作方式相同: