Python 将列与列表中的值进行比较并返回较高的下限值
我有一个列表,未排序,但包含uniques值。下面的一个只是一个例子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代表
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列中的元素都是整数。不需要要排序的列表,这只是一个例子。我们正在根据列值对列表进行子集,然后从中提取最大值或最小值。这是否回答了您的问题?是的……感谢代码:)您介意接受它作为后代的答案吗?当然,我想是的