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

使用Pandas处理CSV时整数转为小数的问题解决咨询

解决Pandas处理CSV后整数变小数的问题

核心原因

Pandas读取CSV时,若目标列包含混合类型(比如整数+空值),会自动将列转为float类型(因为原生整数类型无法存储空值),导致输出时整数变成带.0的小数。

具体解决思路

1. 读取时指定可空整数类型(推荐)

使用Pandas的Int64(大写I)可空整数类型,既能保留整数类型,又支持存储空值。修改读取代码:

import pandas as pd

# 读取时指定'Regular'列为可空整数类型
df = pd.read_csv(source, dtype={'Regular': 'Int64'})

# 执行替换操作
df['Regular'] = df['Regular'].replace({',': '_,'})

# 保存文件
df.to_csv(target, index=False)

2. 处理后转换列类型(适用于无空值的情况)

如果确认列中没有空值,可以在处理后将列强制转回整数类型:

import pandas as pd

df = pd.read_csv(source)

# 先替换操作,再转换类型
df['Regular'] = df['Regular'].replace({',': '_,'}).astype(int)

df.to_csv(target, index=False)

注意:如果列中有空值,astype(int)会报错,此时优先用第一种方法。

3. 保存时格式化输出(仅调整显示格式)

如果不需要改变DataFrame内部的类型,只是希望CSV文件中显示整数而非.0,可以在保存时指定格式化参数:

import pandas as pd

df = pd.read_csv(source)
df['Regular'] = df['Regular'].replace({',': '_,'})

# 格式化数值列,整数显示为整数,小数保留原格式
df.to_csv(target, index=False, float_format='%.0f')

此方法会将所有float类型的列都按整数格式输出,适合整列都是整数但被转为float的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:54:27