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

Pandas:将CSV中以点为千分符的字符串数字转为整数而非浮点数

解决CSV千分分隔符导致的价格类型错误问题

以下是两种规范的处理方式,比正则替换更简洁可靠:

方法一:读取CSV时直接指定千分分隔符(推荐)

pandas的read_csv自带thousands参数,可直接指定千分分隔符为点,读取时会自动将带点的价格解析为整数,从源头避免类型错误:

import pandas as pd

df = pd.read_csv('your_file.csv', thousands='.')

执行后df['price']的类型会是int64,无需后续转换,比如baz对应的1.200会直接解析为1200。

方法二:已读取为float后的补救处理

如果已经把数据读成了float类型(比如1.200被解析为1.2),可以先将数值转为固定三位小数的字符串,再替换点并转整数:

# 将float转为带三位小数的字符串
df['price'] = df['price'].apply(lambda x: f"{x:.3f}")
# 替换千分分隔符后转整数
df['price'] = df['price'].str.replace('.', '', regex=False).astype(int)

注意:这种方法仅适用于所有价格的千分分隔格式都是点后三位的场景(即所有≥1000的整数都采用三位分隔)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:50:26