python - Pandas 在另一个表的范围内查找值
问题描述
在下面的示例中,我试图检查表 1 中的“值”是否在表 2中“开始”和“停止”列的值范围内。如果该值在该范围内,我想返回“水果”的类型。between 方法似乎能够完成此操作,但不确定如何将其应用于另一个表中的行。注意我需要使用大型数据集执行此任务,并且愿意使用 pandas 库之外的方法。
示例代码
df1 = pd.DataFrame({'Date': {0: '06-01', 1: '06-02', 2: '06-03', 3: '06-04'},
'Value': {0: 3, 1: 7, 2: 9, 3: 16}, })
df2 = pd.DataFrame({'Start': {0: 1, 1: 6, 2: 11, 3: 16},
'Stop': {0: 5, 1: 10, 2: 15, 3: 20},
'Fruit': {0: 'Apple', 1: 'Orange', 2: 'Pear', 3: 'Mango'},})
表格1
Date Value
0 06-01 3
1 06-02 7
2 06-03 9
3 06-04 16
表 2
Fruit Start Stop
0 Apple 1 5
1 Orange 6 10
2 Pear 11 15
3 Mango 16 20
表 1 所需输出
Date Value Fruit
0 06-01 3 Apple
1 06-02 7 Orange
2 06-03 9 Orange
3 06-04 16 Mango
解决方案
这是在路上,而不是使用IntervalIndex
,我们与numpy
board-cast核对
s1=df2.Start.values
s2=df2.Stop.values
s=df1.Value.values[:,None]
np.dot((s>=s1)&(s<=s2),df2.Fruit)
array(['Apple', 'Orange', 'Orange', 'Mango'], dtype=object)
推荐阅读
- java - 正则表达式中的通配符仅在停止词之前是贪婪的
- typescript - 确保静态键存在于另一个类上
- r - R shinydashboardplus 翻转框 - 如何删除图像
- javascript - 提取库到单独的文件
- ios - Xamarion.iOS statusBar BackgroundColor 不会改变
- r - install.packages("knitr") 导致错误 untar2: 文件上的不完整块和包 'knitr' 的安装具有非零退出状态
- c - 使用结构变量时链表中的问题
- javascript - 在 github 页面中托管 Angular SSR
- java - Hygieia Jenkins-Build Collector 不以 UnsatisfiedDependencyException 开头
- extract - 在名称未知的文件中查找数值序列的一部分