python - 查找位于其他两个 DataFrame 的索引值之间的 DataFrame 的索引值
问题描述
我有一个数据框:
Index Id Event
1 1 A
2 1 B
3 1 A
4 1 B
5 1 A
6 1 B
7 1 A
8 1 B
9 1 A
10 1 B
11 1 A
我根据某些条件过滤数据帧并得到这两个数据帧 df2
Index Id Event
4 1 B
9 1 A
和df3
Index Id Event
7 1 A
11 1 A
我想找到位于数据框索引和每个 ID 之间的行。
Index Id Event
5 1 A
6 1 B
10 1 B
解决方案
您可以有效地构造IntervalIndex
和查询它。
# Setup - "Index" is a column(!).
df
Index Id Event
0 1 1 A
1 2 1 B
2 3 1 A
3 4 1 B
4 5 1 A
5 6 1 B
6 7 1 A
7 8 1 B
8 9 1 A
9 10 1 B
10 11 1 A
idx = pd.IntervalIndex.from_arrays(df1['Index'], df2['Index'], closed='neither')
df[idx.get_indexer(df['Index']) > -1]
Index Id Event
4 5 1 A
5 6 1 B
9 10 1 B
推荐阅读
- javascript - 将firestore时间戳转换为不同的格式
- c# - 在非 c# 文件的 dotnet 新模板中添加可选内容
- php - 无法为 php-fpm 设置 Tombs zend 扩展
- liquibase - Liquibase 上下文感叹号运算符
- ruby - Ruby 从哈希数组中排除特定数据
- exception - 操作数类型冲突:xml 与文本不兼容
- javascript - 在 JavaScript 中按给定的垂直滚动百分比滚动
- javascript - webrtc 适用于 Intranet 但不适用于 Internet
- css - @include 参数内的 @each 循环
- python - 循环空迭代器不会引发异常