首页 > 解决方案 > 数据框从不是日期的最近值切片

问题描述

我有一个简单的数据框如下

df = pd.DataFrame({"A": [10,10,20,20,30], "B": [40,40,50,50,60]})

我想知道我是否想获得最接近给定值的返回行。例如,如果我想要 A 上的值最接近 12 的返回行,那么结果应该是

A    B
10   40
10   40

我看到几个帖子解决了这个问题,但这些都是迄今为止应用的。我可以有你的建议如何用数值解决这个问题吗?

标签: pythonpandas

解决方案


您可以尝试使用pd.subtract后跟pd.nsmallest

Value = 10
NoRows = 2
df.loc[df.A.subtract(Value).nsmallest(NoRows).index]

出去:

    A   B
0   10  40
1   10  40

推荐阅读