结合硅钢工艺场景比如处理 “原料批次号”“缺陷描述” 等字符串字段整理pandas 中series最常用的 10 个 str 方法每个方法配「代码示例 工艺场景说明」直接复制可用一、核心 str 方法按使用频率排序1.str.contains()判断字符串是否包含指定内容最常用功能筛选包含目标字符的行支持正则工艺场景从缺陷描述中筛选含 “氧化”“裂纹” 的记录返回布尔索引。import pandas as pd # 模拟数据硅钢生产记录 df pd.DataFrame({ 原料批次: [SG2024-056, SG2024-078, SG2025-012, DT2024-033], 缺陷描述: [表面氧化皮严重, 边部裂纹, 无明显缺陷, 夹杂轻微氧化] }) # 筛选缺陷描述中含“氧化”的记录 oxidation_defects df[df[缺陷描述].str.contains(氧化)] print(含氧化缺陷的记录) print(oxidation_defects)2.str.split()按分隔符拆分字符串[参数expand]功能将字符串拆分为列表可扩展为多列工艺场景拆分 “原料批次号”如 “SG2024-056” 拆分为 “SG”“2024”“056”# 拆分原料批次号按“-”拆分 df[批次拆分] df[原料批次].str.split(-) # 拆分为列表 df[[前缀, 年份, 序号]] df[原料批次].str.split(-, expandTrue) # 扩展为多列 print(\n拆分后的批次数据) print(df[[原料批次, 前缀, 年份, 序号]])3.str.strip()/str.lstrip()/str.rstrip()去除空白字符功能去除字符串前后 / 左侧 / 右侧的空格、换行符等工艺场景清理手工录入的缺陷描述避免多余空格影响统计# 模拟带空格的缺陷描述 df[缺陷描述_带空格] [ 表面氧化皮 , \n边部裂纹 , 无明显缺陷\n] # 去除前后空格和换行符 df[缺陷描述_清理后] df[缺陷描述_带空格].str.strip() print(\n清理前后对比) print(df[[缺陷描述_带空格, 缺陷描述_清理后]])4.str.replace(旧内容,新内容)替换字符串中的内容【regex默认为true】功能替换指定字符支持正则工艺场景统一缺陷描述格式如 “氧化”“氧化皮” 统一为 “氧化类缺陷”使用|做正则匹配时需要regextrue# 将“氧化”“氧化皮”统一替换为“氧化类缺陷” df[缺陷描述_统一] df[缺陷描述].str.replace(氧化|氧化皮, 氧化类缺陷, regexTrue) print(\n统一后的缺陷描述) print(df[[缺陷描述, 缺陷描述_统一]])批量替换用Series.replace(字典)单值替换用str.replace(pat, repl)cleaned_data[Country] cleaned_data[Country].replace({ USA: United States, UK: United Kingdom, U.K.: United Kingdom }) # 正则批量替换 cleaned_data[Country] cleaned_data[Country].replace( {rUK|U\.K\.: United Kingdom}, regexTrue )5.str.upper()/str.lower()/str.title()大小写转换功能转换字符串大小写中文无效果适用于英文字段工艺场景统一英文批次前缀如 “sg”“SG” 统一为大写# 统一前缀为大写 df[前缀_大写] df[前缀].str.upper() print(\n前缀大写转换) print(df[[前缀, 前缀_大写]])6.str.len()计算字符串长度功能返回每个字符串的字符数工艺场景筛选过长的缺陷描述可能是录入错误# 计算缺陷描述的长度 df[描述长度] df[缺陷描述].str.len() # 筛选长度8的描述可能是录入冗余 long_descriptions df[df[描述长度] 8] print(\n过长的缺陷描述) print(long_descriptions[[缺陷描述, 描述长度]])7.str.startswith()/str.endswith()判断开头 / 结尾字符功能判断字符串是否以指定字符开头 / 结尾工艺场景筛选特定年份的批次如 2024 年的批次以 “2024” 开头# 筛选2024年的原料批次年份字段以“2024”开头 2024_batches df[df[年份].str.startswith(2024)] print(\n2024年的原料批次) print(2024_batches[原料批次])8.str.join()用分隔符拼接序列里所有元素为字符串功能可迭代列表、元组、字符串、生成器所有元素必须全是 str# 1.逗号分隔列表 lst [a,b,c] res ,.join(lst) print(res) # a,b,c # 2.空字符拼接直接连起来 .join([1,2,3]) # 123 #3.字符串迭代 -.join(abc) # a-b-c9.str.cat()拼接字符串功能将多列字符串拼接为一列工艺场景将 “前缀 年份 序号” 拼接为完整批次号# 拼接“前缀年份序号”为完整批次号 df[拼接批次号] df[前缀].str.cat([df[年份], df[序号]], sep-) print(\n拼接后的批次号) print(df[[前缀, 年份, 序号, 拼接批次号]])10.str.slice()参数和 Python 原生字符串切片完全一致只是批量作用于 Series 每一行。Series.str.slice(start, stop, step)str.slice()的参数可省略等价于原生切片简化写法等价原生切片含义str.slice(0, 3)s[0:3]前 3 个字符str.slice(-3)s[-3:]后 3 个字符str.slice(1, -1)s[1:-1]去掉第一个和最后一个字符str.slice(step2)s[::2]步长 2 取所有字符补充Pandas 支持更简洁的str[]写法等价于slice比如df[code].str[0:1]等价于df[code].str.slice(0,1)日常使用中str[]更简洁但slice()语义更清晰尤其步长复杂时。二、核心总结最常用 Top3str.contains()筛选、str.split()拆分、str.replace()替换覆盖 80% 工艺场景。正则搭配str.extract()提取、str.contains()模糊匹配支持正则处理复杂字符串如批次号、缺陷描述超实用。三、tips1、字符串反转 str[::-1]s abc123 res s[::-1] print(res) # 321cba
series 最常用的str 方法
结合硅钢工艺场景比如处理 “原料批次号”“缺陷描述” 等字符串字段整理pandas 中series最常用的 10 个 str 方法每个方法配「代码示例 工艺场景说明」直接复制可用一、核心 str 方法按使用频率排序1.str.contains()判断字符串是否包含指定内容最常用功能筛选包含目标字符的行支持正则工艺场景从缺陷描述中筛选含 “氧化”“裂纹” 的记录返回布尔索引。import pandas as pd # 模拟数据硅钢生产记录 df pd.DataFrame({ 原料批次: [SG2024-056, SG2024-078, SG2025-012, DT2024-033], 缺陷描述: [表面氧化皮严重, 边部裂纹, 无明显缺陷, 夹杂轻微氧化] }) # 筛选缺陷描述中含“氧化”的记录 oxidation_defects df[df[缺陷描述].str.contains(氧化)] print(含氧化缺陷的记录) print(oxidation_defects)2.str.split()按分隔符拆分字符串[参数expand]功能将字符串拆分为列表可扩展为多列工艺场景拆分 “原料批次号”如 “SG2024-056” 拆分为 “SG”“2024”“056”# 拆分原料批次号按“-”拆分 df[批次拆分] df[原料批次].str.split(-) # 拆分为列表 df[[前缀, 年份, 序号]] df[原料批次].str.split(-, expandTrue) # 扩展为多列 print(\n拆分后的批次数据) print(df[[原料批次, 前缀, 年份, 序号]])3.str.strip()/str.lstrip()/str.rstrip()去除空白字符功能去除字符串前后 / 左侧 / 右侧的空格、换行符等工艺场景清理手工录入的缺陷描述避免多余空格影响统计# 模拟带空格的缺陷描述 df[缺陷描述_带空格] [ 表面氧化皮 , \n边部裂纹 , 无明显缺陷\n] # 去除前后空格和换行符 df[缺陷描述_清理后] df[缺陷描述_带空格].str.strip() print(\n清理前后对比) print(df[[缺陷描述_带空格, 缺陷描述_清理后]])4.str.replace(旧内容,新内容)替换字符串中的内容【regex默认为true】功能替换指定字符支持正则工艺场景统一缺陷描述格式如 “氧化”“氧化皮” 统一为 “氧化类缺陷”使用|做正则匹配时需要regextrue# 将“氧化”“氧化皮”统一替换为“氧化类缺陷” df[缺陷描述_统一] df[缺陷描述].str.replace(氧化|氧化皮, 氧化类缺陷, regexTrue) print(\n统一后的缺陷描述) print(df[[缺陷描述, 缺陷描述_统一]])批量替换用Series.replace(字典)单值替换用str.replace(pat, repl)cleaned_data[Country] cleaned_data[Country].replace({ USA: United States, UK: United Kingdom, U.K.: United Kingdom }) # 正则批量替换 cleaned_data[Country] cleaned_data[Country].replace( {rUK|U\.K\.: United Kingdom}, regexTrue )5.str.upper()/str.lower()/str.title()大小写转换功能转换字符串大小写中文无效果适用于英文字段工艺场景统一英文批次前缀如 “sg”“SG” 统一为大写# 统一前缀为大写 df[前缀_大写] df[前缀].str.upper() print(\n前缀大写转换) print(df[[前缀, 前缀_大写]])6.str.len()计算字符串长度功能返回每个字符串的字符数工艺场景筛选过长的缺陷描述可能是录入错误# 计算缺陷描述的长度 df[描述长度] df[缺陷描述].str.len() # 筛选长度8的描述可能是录入冗余 long_descriptions df[df[描述长度] 8] print(\n过长的缺陷描述) print(long_descriptions[[缺陷描述, 描述长度]])7.str.startswith()/str.endswith()判断开头 / 结尾字符功能判断字符串是否以指定字符开头 / 结尾工艺场景筛选特定年份的批次如 2024 年的批次以 “2024” 开头# 筛选2024年的原料批次年份字段以“2024”开头 2024_batches df[df[年份].str.startswith(2024)] print(\n2024年的原料批次) print(2024_batches[原料批次])8.str.join()用分隔符拼接序列里所有元素为字符串功能可迭代列表、元组、字符串、生成器所有元素必须全是 str# 1.逗号分隔列表 lst [a,b,c] res ,.join(lst) print(res) # a,b,c # 2.空字符拼接直接连起来 .join([1,2,3]) # 123 #3.字符串迭代 -.join(abc) # a-b-c9.str.cat()拼接字符串功能将多列字符串拼接为一列工艺场景将 “前缀 年份 序号” 拼接为完整批次号# 拼接“前缀年份序号”为完整批次号 df[拼接批次号] df[前缀].str.cat([df[年份], df[序号]], sep-) print(\n拼接后的批次号) print(df[[前缀, 年份, 序号, 拼接批次号]])10.str.slice()参数和 Python 原生字符串切片完全一致只是批量作用于 Series 每一行。Series.str.slice(start, stop, step)str.slice()的参数可省略等价于原生切片简化写法等价原生切片含义str.slice(0, 3)s[0:3]前 3 个字符str.slice(-3)s[-3:]后 3 个字符str.slice(1, -1)s[1:-1]去掉第一个和最后一个字符str.slice(step2)s[::2]步长 2 取所有字符补充Pandas 支持更简洁的str[]写法等价于slice比如df[code].str[0:1]等价于df[code].str.slice(0,1)日常使用中str[]更简洁但slice()语义更清晰尤其步长复杂时。二、核心总结最常用 Top3str.contains()筛选、str.split()拆分、str.replace()替换覆盖 80% 工艺场景。正则搭配str.extract()提取、str.contains()模糊匹配支持正则处理复杂字符串如批次号、缺陷描述超实用。三、tips1、字符串反转 str[::-1]s abc123 res s[::-1] print(res) # 321cba