现在我有两个他们看起来像的数据帧:
c = pd.DataFrame({'my_goal':[3, 4, 5, 6, 7],
'low_number': [0,100,1000,2000,3000],
'high_number': [100,1000,2000,3000,4000]})
和
a= pd.DataFrame({'a':['a', 'b', 'c', 'd', 'e'],
'Number':[50, 500, 1030, 2005 , 3575]})
我想要做的是,如果'Number'介于低数字和高数字之间,我希望它带回'my_goal'中的值 . 例如,如果我们看'a'那么'数字是100,所以我希望它带回来3.我还想创建一个数据框,其中包含数据框a中的所有列和数据框c中的“my_goal”列 . 我希望输出看起来像:
我尝试将我的高和低数字放入一个单独的列表并从中运行for循环,但所有这些都是'my_goal'数字:
low_number= 'low_number': [0,100,1000,2000,3000]
for i in a:
if float(i) >= low_number:
a = c['my_goal']
print(a)
2 回答
您可以使用
pd.cut
,当我看到范围时,我首先想到的是pd.cut:输出:
我稍微更改了第4行,以包含不满足条件的测试用例 . 您可以使用条件为true的c行连接 .