Pandas read_csv()小数点的原因及对策

本文解释了Pandas的read_csv()在读取数值数据时遇到空格会添加小数点的原因,提出将dtype设置为object来避免float类型带有.0,并强调了这种处理的重要性以防止误解和数据库错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

在本文中,将介绍Pandas的read_csv()读取数值数据时添加“.0”等小数点的原因以及对策。

关于影响因素

读取包含数字和空格的数据时发生。

样本数据

CSV样本

执行read_csv()后的数据

在这里插入图片描述如上所示,将输出包含“.0”的数据。
如果只是数字数据,则会以int类型输出,但如果包含数字且为空,则会以float类型输出,并添加“.0”。
(由于int类型不能包含NaN,所以它自动变成可以包含NaN的float类型。)

对策

将 dtype=“object” 添加到 read_csv() 的参数中,以便将其输出为对象类型而不是浮点类型。

import pandas as pd

df = pd.read_csv("样本数据.csv", index_col=0, dtype="object")

当使用 dtype=“object” 执行时,输出的示例数据将不带“.0”,如下所示。
在这里插入图片描述

最后

这次介绍了使用read_csv()读取数值数据时添加小数点的原因以及对策。 如果ID等中包含“.0”,那么含义可能会改变,或者更新数据库时可能会发生错误,所以想记下这个规则。

### 回答1: Pandasread_excel函数的常用参数有: - filepath_or_buffer: excel文件路径或文件名 - sheet_name: 要读取的excel sheet的名称或编号(默认读取第一个sheet) - header: 行号作为列名(默认为0) - skiprows: 跳过前几行(默认为0) - skipfooter: 跳过最后几行(默认为0) - index_col: 使用哪一列作为索引(默认为None) - names: 给列赋予新的名称(默认为None) - usecols: 使用哪些列(默认读取所有列) - engine: 使用的读取引擎(默认为'openpyxl', 可选'xlrd'或'xlwt') - converters: 转换某些特殊列的数据类型(默认为None) - true_values: 将特定值解释为True(默认为None) - false_values: 将特定值解释为False(默认为None) - na_values: 将特定值解释为NA/NaN(默认为None) - keep_default_na: 是否保留默认的NA/NaN值(默认为True) - verbose: 显示读取进度(默认为False) - parse_dates: 将哪些列解释为日期(默认为None) - date_parser: 日期解析函数(默认为None) - dayfirst: 是否默认将日期按照'DD/MM/YYYY'的格式解析(默认为False) - iterator: 是否使用迭代器读取文件(默认为False) - chunksize: 迭代器读取的块大小(默认为None) - compression: 压缩类型(默认为None, 可选'infer', 'gzip', 'bz2', 'zip', 'xz'等) - thousands: 千位分隔符(默认为None) - decimal: 小数点符号(默认为'.') - linetermin: 行结束符(默认为'\r\n') - quotechar: 引用符(默认为'"') - quoting: 引用模式(默认为csv.QUOTE_MINIMAL, 可选csv.QUOTE_ALL, csv.QUOTE_NONNUMERIC, csv.QUOTE_NONE) - doublequote: 是否将引用符内的引用符转义(默认为True) - escapechar: 转义符(默认为None) - comment: 注释符(默认为None) - encoding: 编码方式(默认为None, 可选'utf-8', 'cp1252'等) - dialect: 对话方式(默认为None, 可选csv.excel, csv.excel_tab等) - tupleize_cols: 是否将列转换为元组(默认为False) - error_bad_lines: 是否忽略读取过程中出现的错误(默认为True) - warn_bad_lines: 是否在出现错误时发出警告(默认为True) - skip_blank_lines: 是否跳过空行(默认为True) - keep_date_col: 是否保留原有的日期列(默认为True) - dayname: 是否包含星期名称(默认为False) - thousands: 千位分隔符(默认为',') - keep_default_na: 是否保留默认的NA/NaN值(默认为True) - na_filter: 是否过滤NA/NaN值(默认为True) - memory_map: 是否使用内pandasread_excel()函数有许多可选参数。 常用参数如下: - `io`: 文件路径或者文件类型。 - `sheet_name`: 读取的工作表名称或编号。 - `header`: 用来作为列名的行号。 - `skiprows`: 跳过的行数。 - `index_col`: 作为索引的列编号。 - `usecols`: 选择读取的列。 - `nrows`: 读取的行数。 其他参数可以参考官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allan_lam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值