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

Python中替换DataFrame错误元素:将't'替换为前序ID+1

解决DataFrame中替换't'为前一Station_ID数值加1的问题

实现步骤

  • 提取Station_ID字段中的数字部分,将非数字值(如't')转为NaN
  • 用前一个有效数字填充NaN,再对填充后的数值加1
  • 将计算后的数字与前缀"ID"拼接,替换原字段中的't'

代码示例

import pandas as pd

# 构造示例数据
data = {
    'Station_ID': ['ID809086', 't', 'ID809088', 'ID809089', 'ID809098', 't', 'ID809100']
}
df = pd.DataFrame(data)

# 提取数字并转为数值类型
df['temp_num'] = df['Station_ID'].str.extract(r'(\d+)').astype(float)

# 向前填充缺失值并加1
df['temp_num'] = df['temp_num'].ffill() + 1

# 替换't'为新的Station_ID
df['Station_ID'] = df.apply(
    lambda x: f"ID{int(x['temp_num'])}" if x['Station_ID'] == 't' else x['Station_ID'],
    axis=1
)

# 删除临时列
df = df.drop('temp_num', axis=1)

print(df)

代码说明

  • str.extract(r'(\d+)'):通过正则匹配提取Station_ID中的数字部分,非数字内容会生成NaN
  • ffill():向前填充缺失值,确保't'位置能获取到前一个有效的ID数字
  • apply函数:逐行判断元素值,仅替换标记为't'的元素,其余元素保留原内容

内容的提问来源于stack exchange,提问作者Swatantra Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:05:14