如何依据Column B的值更新Column A:B为3替换A,B为0保留A
需求说明
需要处理表格数据,规则如下:
- 当Column B的值为3时,将对应行的Column A的值替换为3
- 当Column B的值为0时,保留Column A的原有值不变
原始表格
| Column A | Column B |
|---|---|
| 2 | 0 |
| 2 | 3 |
| 1 | 0 |
| 2 | 3 |
| 2 | 3 |
| 2 | 0 |
期望结果表格
| Column A | Column B |
|---|---|
| 2 | 0 |
| 3 | 3 |
| 1 | 0 |
| 3 | 3 |
| 3 | 3 |
| 2 | 0 |
1. Excel/Google Sheets 实现方法
在空白列(比如C列首行)输入公式,下拉填充后可覆盖原A列数据:
=IF(B2=3, 3, A2)
2. Python pandas 实现方法
适合批量处理表格数据,代码示例:
import pandas as pd import numpy as np # 构造原始数据 df = pd.DataFrame({ 'Column A': [2, 2, 1, 2, 2, 2], 'Column B': [0, 3, 0, 3, 3, 0] }) # 应用规则(两种方式选其一即可) # 方式1:apply逐行判断 df['Column A'] = df.apply(lambda row: 3 if row['Column B'] == 3 else row['Column A'], axis=1) # 方式2:numpy.where高效处理(大数据量推荐) # df['Column A'] = np.where(df['Column B'] == 3, 3, df['Column A']) print(df)
3. SQL 实现方法
如果数据存储在数据库中,用CASE语句更新或查询:
-- 先验证结果(建议执行更新前先运行此语句) SELECT CASE WHEN Column_B = 3 THEN 3 ELSE Column_A END AS Column_A, Column_B FROM your_table_name; -- 执行更新 UPDATE your_table_name SET Column_A = 3 WHERE Column_B = 3;
内容的提问来源于stack exchange,提问作者Halahhemy
相关产品推荐
相关产品推荐

