2 回答

TA貢獻1848條經驗 獲得超2個贊
可以用pd.cut,當我看到范圍的時候,我首先想到的是pd.cut:
dfa = pd.DataFrame(a)
dfc = pd.DataFrame(c)
dfa['my_goal'] = pd.cut(dfa['Number'],
bins=[0]+dfc['high_number'].tolist(),
labels=dfc['my_goal'])
輸出:
a Number my_goal
0 a 50 3
1 b 500 4
2 c 1030 5
3 d 2005 6
4 e 3575 7

TA貢獻1818條經驗 獲得超3個贊
我稍微更改了第 4 行,以包含不滿足條件的測試用例。您可以將 a 與條件為真的 c 行連接起來。
a= pd.DataFrame({'a':['a', 'b', 'c', 'd', 'e'],'Number':[50, 500, 1030, 1995 , 3575]})
cond= a.Number.between( c.low_number, c.high_number)
pd.concat([a, c.loc[cond, ['my_goal']] ], axis = 1, join = 'inner')
Number a my_goal
0 50 a 3
1 500 b 4
2 1030 c 5
4 3575 e 7
添加回答
舉報