我有一个数据框:
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
答案 0 :(得分:2)
您可以构造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