我正在尝试使用以下脚本提取数据帧单元格的数据类型:
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中读取您的列。