基于前缀匹配条件将A列值更新至C列的技术实现需求
需求说明
当数据表中A列的值以字符'2'开头时,将A列对应的值更新至C列。
原始数据
A B C 12525 1FWE23 na 14654 22354 na 24798 32684 na 28945 45368 na 46456 46485 na 2D545 45346 na A5D66 58446 na
预期更新后的数据表
A B C 12525 1FWE23 na 14654 22354 na 24798 32684 24798 28945 45368 28945 46456 46485 na 2D545 45346 2D545 A5D66 58446 na
实现方案
以下是几种常用工具的解决方法:
1. Excel 公式实现
在C2单元格输入公式后下拉填充:
=IF(LEFT(A2,1)="2",A2,"na")
- 逻辑:用
LEFT(A2,1)提取A列单元格首字符,判断是否为'2',满足则返回A列值,否则返回"na"。
2. Python Pandas 实现
import pandas as pd # 构建原始数据 data = { 'A': ['12525', '14654', '24798', '28945', '46456', '2D545', 'A5D66'], 'B': ['1FWE23', '22354', '32684', '45368', '46485', '45346', '58446'], 'C': ['na']*7 } df = pd.DataFrame(data) # 更新C列 df['C'] = df.apply(lambda row: row['A'] if str(row['A']).startswith('2') else 'na', axis=1) print(df)
- 逻辑:通过
apply遍历每行,用startswith('2')判断A列值开头字符,满足条件则将A列值赋值给C列,否则保留"na"。
3. SQL 语句实现
假设表名为your_table,执行以下更新语句:
UPDATE your_table SET C = A WHERE A LIKE '2%';
- 逻辑:
LIKE '2%'匹配所有以'2'开头的A列值,将这些行的C列更新为对应A列值,不满足条件的行C列保持原值。
内容的提问来源于stack exchange,提问作者Pravin
相关产品推荐
相关产品推荐

