You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按条件替换列中字符串:将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:57:10