前言:
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