【发布时间】:2016-11-07 03:36:39
【问题描述】:
我有两个 pandas DataFrame 对象:
A包含'start'和'finish'列B具有列'date'
目标是有效地创建一个布尔掩码,指示 date 是否在 [start, finish] 区间内
天真的迭代花费了太多时间,我想有一种方法可以更快地做到这一点
更新:
A 和 B 有不同的行数
更新2: 示例:
A
| start | finish |
|------- |-------- |
| 1 | 3 |
| 50 | 83 |
| 30 | 42 |
B
| date |
|------- |
| 31 |
| 20 |
| 2.5 |
| 84 |
| 1000 |
Output:
| in_interval |
|------- |
| True |
| False |
| True |
| False |
| False |
附:我有日期时间格式的数据,但我想解决方案不会与数字不同
【问题讨论】:
-
所以你要
df[(df['date'] > df['start']) & (df['date'] < df['finish'])]? -
你想在元素方面做到这一点(即你需要相同大小的数据框)吗?
-
不,这是两个独立的数据帧,行数不同,所以我认为这个行不通
-
那么,如果A有M行,B有N行,输出会有NxM行?
-
为简单起见,提供了带有数字而不是日期时间的示例输出
标签: python datetime pandas dataframe