pandas - 如何根据熊猫的范围进行匹配
问题描述
例如,我有下表
Name Language SalaryBegin SalaryEnd
Tom C+= 20 30
Jeff C-- 21 32
Hideo JAVA 22 29
TomoHiro RATCHET 19 20
Name Language SalaryBegin SalaryEnd
Tom python 26 27
jeff python 22 23
Hideo JAVA 23 26
我的问题是如何使用 pandas 根据间隔匹配薪水开始和薪水结束。例如对于 Hideo (23,26) 在 (22,29) 内部并且也按语言匹配。
我没有
table4=pd.merge(table3,table1,how="inner",on=["Language","SalaryBegin","SalaryEnd"])
#this is does not work
解决方案
In [284]: df1
Out[284]:
Name Language SalaryBegin SalaryEnd
0 Tom C+= 20 30
1 Jeff C-- 21 32
2 Hideo JAVA 22 29
3 TomoHiro RATCHET 19 20
In [286]: df2
Out[286]:
Name Language SalaryBegin SalaryEnd
0 Tom python 26 27
1 jeff python 22 23
2 Hideo JAVA 23 26
In [291]: result = df1.merge(df2, on=['Name', 'Language']).query('SalaryBegin_y >= SalaryBegin_x & SalaryEnd_y <= SalaryEnd_x')[['Name', 'Language']]
In [292]: result
Out[292]:
Name Language
0 Hideo JAVA
推荐阅读
- wordpress - 摘录wordpress中的音频播放器
- android - 使用 Retrofit + Rx 链接 API 请求
- sql - 使用 SQL Server 将一列中的字符串中的多个值拆分为多列
- c# - 如何在我的正则表达式条件之前立即获得单词?
- java - 通过 Java DIScord Bot 提及任何成员
- base64 - Base64 编码文件显示“GZIP”,但在 Python 中对其进行解码会输出损坏的 HTML
- c - 堆中存储的 calloc 的标头和有效负载信息在哪里?
- android - 安卓工作室。HttpHostConnectException
- pandas - 此版本的 pandas 与 numpy < 1.17.3 不兼容,您的 numpy 版本为 1.16.3。请将 numpy 升级到 >= 1.17.3
- javascript - 如何在现有项目中使用 svelte?