我 有 下面 的 python 字典 :
ranges = {
(0, 10): '0 - 10',
(10, 100): '10 - 100',
(100, float('inf')): '100+'
}
中 的 每 一 个
和 下面 的 df :
| 识别 码|数值|
| - -| - -|
| 第 001 章|九 个|
| 002 年|10 个|
| 003 年|三百 个|
我 想 添加 一 个 列 , 如果 " Value " 列 介于 ( 不 包括 ) 字典 键 中 的 两 个 数字 之间 , 则 该 列 返回 字典 的 值 。
因此 , 生成 的 df 应该 如下 所 示 :
| 识别 码|数值|范围|
| - -| - -| - -|
| 第 001 章|九 个|0 - 10 岁|
| 002 年|10 个|10 - 100 个|
| 003 年|三百 个|100 个 以上|
我 知道 我 可以 使用 withColumn 和 when , 例如 :
df.withColumn(
'Range',
.when((col('Value') >= lit(0)) & (col('Value') < lit(10)), '0 - 10')
)
格式
或者 希望 在 键 中 使用 不同 的 数字 进行 测试 , 这 将 是 低效 的 。
希望 这 是 有 意义 的 。 我 将 感谢 任何 和 所有 的 投入 。 提前 感谢 你 这么 多 。
1条答案
按热度按时间t98cgbkg1#
字典可以转换为SQL表达式:
range_expr
现在的值为并且可以用于构造新的列:
输出量: