Panda中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

有人能给我提些建议/解决办法吗?

您可以删除dtype='object',也可以分别为每列指定数据类型:

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

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

最新更新