我想搜索一个数据框以找到对应于索引行和列值的值。但是,我很挣扎,因为列标题值是某个范围的上限,而前一个列标题值是该范围的下限(但是其其他neightbor列值的上限)。
我找不到一种将输入与范围下限对应的列进行匹配的方法。
举一个例子,很容易看到:
data_frame_test = pd.DataFrame({'location' : [1, 2, 'S'],
'200' : [342, 690, 103],
'1000' : [322, 120, 193],
'2000' : [249, 990, 403]})
data_frame_test = data_frame_test.set_index('location')
我想做的是
location = 1
weight = 500
output = data_frame_test.iloc[1][??] #must be equal to 342
可以看到,重量必须查看的列为200,因为它的范围是] 200; 1000 [。我不知道还有什么尝试将其转换为python代码。任何帮助将不胜感激。
您可以创建一个自定义函数,该函数将遍历列以检查正确的列,然后返回该位置的单元格:
def get_val(location, weight, df):
col = df.columns[0]
for c in df.columns:
if weight >= int(c):
col = c
else:
break
return df.loc[location, col]
get_val(1, 500, data_frame_test)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句