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

如何在Pandas中将指定列的最后三位字符替换为另一列的值

解决方法

你要实现的price列尾部替换逻辑可以直接通过字符串截取+拼接完成,完整可运行代码如下:

import pandas as pd

# 首先确保price和price_end都是字符串类型,避免截取报错
mydf['price'] = mydf['price'].astype(str)
mydf['price_end'] = mydf['price_end'].astype(str)

# 截取price列除最后三位外的所有内容,拼接price_end列值,得到归一化前的价格
mydf['price_norm'] = mydf['price'].str[:-3] + mydf['price_end']

# 按不同国家标点习惯做最终归一化,示例为:逗号代表小数点,点代表千位分隔
mydf['price_norm'] = mydf['price_norm'].str.replace('.', '', regex=False)\
                                       .str.replace(',', '.', regex=False)\
                                       .astype(float)

问题说明

你原代码的逻辑问题是仅修改了price_end列,没有对核心的price列做任何替换操作,同时全局的sum()判断也无法逐行匹配不同行的处理需求。

运行结果

基于你给出的样例数据,最终price_norm列输出结果为:

idprice_norm
a22.23
b230450330.55
c100.55

内容的提问来源于stack exchange,提问作者John Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 02:45:07