2024-09-29 20:17:36 发布
网友
我有一个列表,未排序,但包含uniques值。下面的一个只是一个例子
lst = [1,3,4,6]
以及熊猫栏,如下所示:
A 3 4
我还需要两列具有上限值和下限值,并希望创建两列,如下所示
A UpperA LowerA 3 4 1 4 6 3
UpperA的逻辑应该是这样的 UpperA= min(i for i in lst if i>k)
UpperA= min(i for i in lst if i>k)
LowerA的逻辑应该是这样的 LowerA = max(i for i in lst if i<k)
LowerA = max(i for i in lst if i<k)
这里k是A列中的值
k
使用merge_asof获取高于或低于以下值:
merge_asof
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
使用
merge_asof
获取高于或低于以下值:结果是:
相关问题 更多 >
编程相关推荐