解决pandas read_csv读取CSV文件时列类型错误的问题

Miles
Miles
发布时间:2026-10-13 | 4人浏览过
原创

在使用pandas的read_csv()函数读取CSV文件时,若未指定数据类型,数值列可能被默认读取为object类型,导致后续比较运算抛出TypeError。本文通过示例展示如何查看列类型,并利用dtype参数在读取时显式指定数值类型,从而解决字符串与整数比较的错误。

具体场景如下:

数据文件:

上海机场 (sh600009)
24.11 3.58
东风汽车 (sh600006) 74.25 1.74
中国国贸 (sh600007) 26.38 2.66
包钢股份 (sh600010) 61.01 2.35
武钢股份 (sh600005) 75.85 1.3
浦发银行 (sh600000) 6.65 0.96

在调用read_csv() API加载CSV文件后,尝试对其中某一列的数据进行大小比较操作时,

df=pd.read_csv(output_file,encoding='gb2312',names=['a','b','c'])
df.b>20

程序抛出异常

TypeError:'>'not supported between instances of 'str' and 'int'

根据返回的错误信息判断,问题源于数据类型不匹配,实际读取回来的数据格式为字符串类型('str')。

in : df.dtypes
out:
 a object
 b object
 c object
 dtype: object

由此可以确认,DataFrame中列b的数据类型被识别为object。

查阅read_csv()函数的官方文档,相关配置说明如下:

dtype : Type name or dict of column -> type, default None
Data type for data or columns. E.g. {'a': np.float64, 'b': np.int32} (unsupported with engine='python'). Use str or object to preserve and not interpret dtype.

New in version 0.20.0: support for the Python parser.

文档指出,若不指定类型,默认会使用字符串('str')或对象('object')来保存数据。

因此,在读取文件时,只需调整'dtype'参数即可解决该问题。

df=pd.read_csv(output_file,encoding='gb2312',names=['a','b','c'],dtype={'b':np.folat64})

以上关于解决pandas使用read_csv()读取文件时遇到类型问题的内容就是小编分享给大家的全部经验,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表