gpt4 book ai didi

python - 按列分组时查找最接近的值

转载 作者:太空狗 更新时间:2023-10-30 00:58:16 24 4
gpt4 key购买 nike

我想创建 2 个新列,它们会给我最接近某个值的值和 ID。这就是我在 python 中的 df 的结构:

x_time    expiration    x_price    p_time    p_price
100 4 55.321 100 21
105 4 51.120 105 25
110 4 44.412 110 33.1
100 5 9.1 100 3.1
105 5 9.5 105 5.1
110 5 8.2 110 12.1
100 6 122.1 100 155.9
105 6 144.1 105 134.2
.......

基本上,我想创建一个新列(称为“closest_time”和“closest_price”),这将是最接近该组 x_price 的 p_price(因此按到期分组)

因此,预期的结果将如下所示:

x_time    expiration    x_price    p_time    p_price   closest_price closest_p_time
100 4 55.321 100 21 33.1 110
105 4 51.120 105 25 33.1 110
110 4 44.412 110 33.1 33.1 110
100 5 9.1 100 3.1 12.1 110
105 5 9.5 105 5.1 12.1 110
110 5 8.2 110 12.1 5.1 105
100 6 122.1 100 155.9 134.2 105
105 6 144.1 105 134.2 134.22 100

希望这是有道理的。

我已经想到了执行此操作的潜在方法:

  1. 使用 for 循环..
    • 第一次循环过期
    • 然后解析 p_price 并将所有值与每个 x_price 进行比较并选择最接近的值 (min(abs())
    • 然而,这似乎是最长的解决方法 - 如果有一种方法可以对其进行矢量化,那将是理想的选择!

然而,我并没有成功。

谢谢!

最佳答案

我认为一个不错的解决方案是:

df['closest_price'] = \
df.apply(lambda x: df[df.p_price <= x.x_price]['p_price'].max(), axis=1)

关于python - 按列分组时查找最接近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55714921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com