Python 返回查找的最小-最大列之间的熊猫
我看到了一些关于在一个范围内查找单个值的问题,但是我需要在所有行上循环并且更具性能的东西Python 返回查找的最小-最大列之间的熊猫,python,pandas,Python,Pandas,我看到了一些关于在一个范围内查找单个值的问题,但是我需要在所有行上循环并且更具性能的东西 #我有一些数据集(10k到1m行) values=pd.DataFrame([[“foo”,5],“bar”,15]],columns=[“foobar”,“values”]) #和一个查找表(25行) lookups=pd.DataFrame([[“A1”,0,10],“A2”,10,20]],columns=[“tier”,“min”,“max”]) 我期望的结果是根据值的值以及查找表上的最小值和最大
#我有一些数据集(10k到1m行)
values=pd.DataFrame([[“foo”,5],“bar”,15]],columns=[“foobar”,“values”])
#和一个查找表(25行)
lookups=pd.DataFrame([[“A1”,0,10],“A2”,10,20]],columns=[“tier”,“min”,“max”])
我期望的结果是根据值的值以及查找表上的最小值和最大值范围查找层:
foobar values tier
0 foo 5 A1
1 bar 15 A2
我有一些东西在工作,但它的伸缩性非常差:
def查找(分数):
对于idx,lookups.ItErrors()中的行:
如果行[“min”]这是pd.cut
:
values['tier'] = pd.cut(values['values'],
bins=list(lookups['min']) + [lookups['max'].iloc[-1]],
labels=lookups['tier']
)
输出:
foobar values tier
0 foo 5 A1
1 bar 15 A2
这是pd.cut
:
values['tier'] = pd.cut(values['values'],
bins=list(lookups['min']) + [lookups['max'].iloc[-1]],
labels=lookups['tier']
)
输出:
foobar values tier
0 foo 5 A1
1 bar 15 A2
谢谢,pd.cut
不像其他大多数内置软件那样直观地出现在我的脑海中!谢谢,pd.cut
不像其他大多数内置软件那样直观地出现在我的脑海中!