Python 将列与列表中的值进行比较并返回较高的下限值

Python 将列与列表中的值进行比较并返回较高的下限值,python,pandas,Python,Pandas,我有一个列表,未排序,但包含uniques值。下面的一个只是一个例子 lst = [1,3,4,6] 以及熊猫栏,如下所示: A 3 4 我还需要两列具有上限值和下限值,并希望创建两列,如下所示 A UpperA LowerA 3 4 1 4 6 3 UpperA的逻辑应该是这样的 UpperA=min(如果i>k,则i代表lst中的i) LowerA的逻辑应该是这样的 LowerA=max(如果i使用merge\u asof获得高于或低于A的值,则i代表

我有一个列表,未排序,但包含uniques值。下面的一个只是一个例子

lst = [1,3,4,6]
以及熊猫栏,如下所示:

A
3
4
我还需要两列具有上限值和下限值,并希望创建两列,如下所示

 A UpperA LowerA
 3   4      1
 4   6      3
UpperA的逻辑应该是这样的
UpperA=min(如果i>k,则i代表lst中的i)

LowerA的逻辑应该是这样的
LowerA=max(如果i使用
merge\u asof
获得高于或低于A的值,则i代表lst中的i):

df = pd.DataFrame({"A": [3, 4]})
lst = [1,3,4,6]
lst_df = pd.DataFrame({"bounderies": lst})

res = pd.merge_asof(df, lst_df, left_on="A", 
                               right_on="bounderies", 
                               direction = "backward", 
                               allow_exact_matches=False)
res.rename(columns = {"bounderies": "lowerA"}, inplace=True)

res = pd.merge_asof(res, lst_df, left_on="A", 
                               right_on="bounderies", 
                               direction = "forward", 
                               allow_exact_matches=False)

res.rename(columns = {"bounderies": "upperA"}, inplace=True)
结果是:

   A  lowerA  upperA
0  3       1       4
1  4       3       6

你试过什么吗?我在这里没有看到问题,规范中有很多空白。如果元素不在列表中会发生什么?列表是否保证按升序排序?lst
中的重复项如何?现在问题清楚了吗?列表和pandas列中的元素都是整数。不需要要排序的列表,这只是一个例子。我们正在根据列值对列表进行子集,然后从中提取最大值或最小值。这是否回答了您的问题?是的……感谢代码:)您介意接受它作为后代的答案吗?当然,我想是的