按条件替换列中字符串:将sp替换为10或100使数值超1000
解决气压数据中'sp'替换为10/100的问题
核心逻辑
要确保替换后的数值超过1000,关键看sp后数字的位数:
- 若数字是1位(如
sp3):将sp替换为100,得到1003(>1000) - 若数字是2位(如
sp25):将sp替换为10,得到1025(>1000)
代码实现(Python + Pandas)
假设你的数据存储在Pandas DataFrame的pressure列中,可以用以下代码批量处理:
import pandas as pd # 示例数据 data = {'pressure': ['sp25', 'sp25', 'sp3', 'sp6', 'sp22']} df = pd.DataFrame(data) # 定义替换函数 def replace_sp(s): # 提取sp后的数字部分 num_part = s.replace('sp', '') if len(num_part) == 1: return '100' + num_part elif len(num_part) == 2: return '10' + num_part # 处理特殊情况(如有其他位数可自定义) else: return s # 应用函数到列 df['processed_pressure'] = df['pressure'].apply(replace_sp) print(df)
运行后输出:
pressure processed_pressure 0 sp25 1025 1 sp25 1025 2 sp3 1003 3 sp6 1006 4 sp22 1022
纯Python字符串处理(非Pandas场景)
如果是普通列表数据,直接循环处理:
pressure_list = ['sp25', 'sp25', 'sp3', 'sp6', 'sp22'] processed_list = [] for s in pressure_list: num_part = s[2:] # 利用固定前缀直接切片更高效 if len(num_part) == 1: processed_list.append(f'100{num_part}') elif len(num_part) == 2: processed_list.append(f'10{num_part}') print(processed_list) # 输出: ['1025', '1025', '1003', '1006', '1022']
补充说明
如果数据中存在sp后为3位数字的情况(如sp123),可补充逻辑替换为1,得到1123(仍>1000),只需在替换函数中添加对应判断分支即可。
内容的提问来源于stack exchange,提问作者Jean Swiegers
相关产品推荐
相关产品推荐

