首页 > 解决方案 > pandas 中 csv 文件的错误数据类型检测

问题描述

我正在尝试使用以下脚本提取数据框单元格的数据类型:

import pandas as pd
df = pd.read_csv(path,sep= '|',dtype=object)
d = {"<class 'pandas._libs.tslibs.timestamps.Timestamp'>": 'date',
     "<class 'int'>": 'int',
     "<class 'float'>": 'float',
     "<class 'str'>": 'str'}
df1 = df.applymap(type).astype(str).replace(d)

但这适用于 XLSX 文件,但无法检测 CSV 文件的数据类型。

对于 CSV 文件,它将每个单元格检测为 str 但正确检测 excel 文件的数据类型。

df截图:

index   A    B     C 
0      ws    1.7   1
1      rd    1     nan

df1 输出:

index    A    B    C    D
0       str   str  str  str
1       str   str  str  float

任何人都可以向我提出任何建议/解决方案吗?

标签: pythonpandascsv

解决方案


您可以删除dtype='object'或单独指定每列的数据类型:

df = pd.read_csv(path,sep= '|',dtype={'a': np.float64, 'b': np.int32, 'c': 'Int64'})

这将以指定格式从 csv 读取您的列。


推荐阅读