如何根据字段中下划线的出现次数删除符合条件的数据行
解决方案
核心逻辑:统计var1字段值中的下划线出现次数,仅保留次数≥6的行即可得到你需要的结果。你示例中的4条数据下划线计数分别为6、3、6、5,筛选后刚好匹配你的预期输出。
SQL 实现
第一步:先查询确认待保留的内容,避免误删数据
SELECT * FROM 你的表名 WHERE LENGTH(var1) - LENGTH(REPLACE(var1, '_', '')) >= 6;
第二步:确认内容匹配预期后执行删除
DELETE FROM 你的表名 WHERE LENGTH(var1) - LENGTH(REPLACE(var1, '_', '')) < 6;
注:如果使用非MySQL数据库,
LENGTH函数可替换为对应数据库的长度函数,比如SQL Server用LEN,Oracle可直接用LENGTH。
Python Pandas 实现
如果你是用Python处理表格数据,可以用以下代码:
import pandas as pd # 读取数据,可替换为你自己的数据源读取逻辑,比如pd.read_csv("你的文件路径.csv") df = pd.DataFrame({ 'id': [1,2,3,4], 'var1': ['procedures_1_1_5___240', 'procedures___6', 'procedures_1_20_1___2130', 'procedures_1_1___2'], 'var2': [True, True, True, True] }) # 筛选下划线出现次数≥6的行 df = df[df['var1'].str.count('_') >= 6] # 输出查看结果 print(df)
内容的提问来源于stack exchange,提问作者Andres Mora
相关产品推荐
相关产品推荐

