python - 将过滤后的列表值传递给数据框
问题描述
我想将列表中的值放入 df 列,条件取决于另一列。我试过这个,但它抛出ValueError
:
terms = [0.02, 0.08, 0.24, 0.5, 1, 2]
df['col_1'] = max(list(filter(lambda x: x < df['col_2'], terms)))
col_1
必须包含最接近col_2
小于它的值。因为0.35
我想把0.24
.
我怎样才能在没有循环的情况下实现这一点?
解决方案
这是merge_asof
:
df = pd.DataFrame({'col_2':[0.35]})
pd.merge_asof(df,pd.DataFrame({'col_1':terms}),
left_on='col_2',
right_on='col_1')
输出:
col_2 col_1
0 0.35 0.24
推荐阅读
- html - 如何在 HTML 中的 Node 中显示数组中的每个元素?
- typescript - 是否有一种类型级别的方法可以从类中提取具有默认值的属性?
- asp.net-core - 添加 ResponseCache 属性时记录缓存控制警告
- php - 如何绕过网站重定向屏幕?
- express - 在快速应用程序中使用压缩中间件不起作用
- r - 在 ggplot 中绘制具有聚集标准误差的回归的置信区间
- xcode - 转换为 swift 4:找不到构建输入文件 target:Tests/_5__2Tests.swift'
- c# - 是否有与 Java 的 :: 表示法等价的指代成员函数?
- interface - 仅在 localhost 接口上使 socat 开放端口
- nvidia - 同时为 GPGPU 运行 NVIDIA,为图形运行 Intel