前言:
pandas中读取csv文件通常使用pd.read_csv()函数,正常情况下给出文件路径即可读取数据,不过在某些特殊情况下,需要一些小技巧才能读取正确的内容
文本型和浮点数的混淆及处理
在处理股票交割单中遇到一个典型的问题,交割单中的原始数据如下:
image.png
df=pd.read_csv(file_address)
使用默认函数读取数据后并非我们预想的结果,把510300读取成了510300.0,即文本型数据转换成浮点数
image.png
强制某列按照某种类型进行读取,需要调用read_csv中的dtype参数,文档说明如下:
dtype : Type name or dict of column -> type, default None
Data type for data or columns. E.g. {‘a’: np.float64, ‘b’: np.int32} Use str or object together with suitable na_values settings to preserve and not interpret dtype. If converters are specified, they will be applied INSTEAD of dtype conversion.
即添加一个字典型参数,将需要强制转换类型的列和相应的类型标明即可,注意np.int32需要引入相关定义
import numpy as np
df=pd.read_csv(file_address,dtype={'证券代码': np.str})
image.png
网友评论