此问题在此处已有答案:
How to join two dataframes for which column values are within a certain range?(9个回答)
Merge pandas dataframes where one value is between two others [duplicate](4个答案)
15天前关闭
我很难找到这个问题的解决方案。通常是merge()
来获得类似的东西,但我找不到它是否会额外附加
数据类型:
import pandas as pd
import numpy as np
num = {'serial':[10,20,30,50]}
df = pd.DataFrame(num)
cols = {'StartSerial':[9,19,29,39],'StopSerial':[15,25,35,45],'Job':[564,859,748,125]}
df2 = pd.DataFrame(cols)
字符串
尝试做类似的事情,但由于索引不匹配而不可能:
df['Job'] = np.where((df['serial'] >= df2['StartSerial']) & (df['serial'] <= df2['StopSerial']),df2['Job'],'')
型
这也不起作用:
df.loc[(df['serial'] >= df2['StartSerial']) & (df['serial'] <= df2['StopSerial']),Job] = df2['Job']
型
所需输出:
serial | Job
------------
10 | 564
20 | 859
30 | 748
50 |
型
2条答案
按热度按时间7xzttuei1#
您可以尝试创建
pd.IntervalIndex
,然后使用此索引查找正确的值:字符串
印刷品:
型
mqkwyuun2#
字符串
确实存在其他解决办法。
更容易理解的解决方案是将Start和Stop转换为值并填充它们。
型