python - 如何使用条件将 A 列中的值替换为 B 列
问题描述
我的数据框列出了一些我感兴趣的名称,并且可能会进行一些更改,如果选项为空,我想要的是保留原始名称,如果它说删除则删除名称,如果有的话则替换名称。
姓名 | 选项 |
---|---|
一个 | |
乙 | 删除 |
C | |
D | DDDD |
乙 | 删除 |
F | 法郎 |
我想要的最终数据框是在更大的数据框和其他信息中更改名称。可能看起来像这样
姓名 | 信息1 | 信息2 |
---|---|---|
一个 | xxxx | 某事 |
一个 | xxxx | 某事 |
C | X | 布拉拉 |
DDDD | xx | 啦啦啦 |
DDDD | xx | 拉 |
DDDD | xx | 啦啦啦 |
法郎 | xxx | 啊啊啊 |
解决方案
您可以使用 case 条件根据选项值进行替换。
val df = Seq(("A", ""), ("B", "delete"), ("C", ""), ("D", "DDDD"), ("E", "delete"), ("F", "FF")).toDF("name", "option")
df.createOrReplaceTempView("temp")
val query = """
select case when option = 'delete' then ''
when option == '' then name
else option
end as name,
option
from temp
"""
spark.sql(query).show()
+----+------+
|name|option|
+----+------+
| A| |
| |delete|
| C| |
|DDDD| DDDD|
| |delete|
| FF| FF|
+----+------+
推荐阅读
- android - 未知验证 VALIDATE_APP_MESSAGE_DDA_NOT_ACCEPTED
- python - 如何使用 Google 的 CP-SAT 求解器计算“AddAbsEquality”或“AddMultiplicationEqualit”以进行非线性优化?
- c++ - 错误:数组下标的无效类型“int [int]”|
- python - 在涉及 Return 的 Python 函数中重用逻辑
- javascript - react.component 等效于样式化的组件返回
- wordpress - 如何生成 WordPress 插件“立即更新”网址?
- javascript - 需要暂停一切,直到网络工作者回复消息?
- sql - SAS 联合来自具有相似名称的数据集的不同记录
- python - 未能在 python 中为给定的正整数 n 按预期打印模式
- python - 在 GitLab 中创建 CI/CD 管道以创建可执行文件