这是一个熊猫数据框的样本。我需要找到一个给定出价的特定行。例如,给定bid=5,我需要返回下表中对应的行。如果我输入了一个缺少的bid,例如bid=6,那么应该返回与小于input bid的最大bid对应的行。因此,在这种情况下,bid=5对应的行应该返回。在熊猫身上怎么做?
Bid Imp Click Spend
3 13 0.97 2
4 13 1.89 7
5 79 34.98 130
7 83 37.52 140
8 88 38.52 144
最佳答案
我想这可以做到:
>>> df[(df['Bid']<=5)].iloc[-1,:]
Bid 5.00
Imp 79.00
Click 34.98
Spend 130.00
Name: 2, dtype: float64
如果你想要一只熊猫,只要做
df[(df['Bid']<=5)].iloc[-1,:].to_frame().T
。>>> df[(df['Bid']<=5)].iloc[-1,:].to_frame().T
Bid Imp Click Spend
2 5.0 79.0 34.98 130.0
对于缺少出价=6的情况,
df[(df['Bid']<=6)].iloc[-1,:].to_frame().T
将返回低于6的最近出价,也就是5。>>> df[(df['Bid']<=6)].iloc[-1,:].to_frame().T
Bid Imp Click Spend
2 5.0 79.0 34.98 130.0
编辑
要确保数据帧按升序包含
Bid
,请执行以下操作:>>> df = df.sort_values(by='Bid',ascending=True)
关于python - 通过 Pandas 列搜索值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48786759/