python - 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
任何人都可以向我提出任何建议/解决方案吗?
解决方案
您可以删除dtype='object'
或单独指定每列的数据类型:
df = pd.read_csv(path,sep= '|',dtype={'a': np.float64, 'b': np.int32, 'c': 'Int64'})
这将以指定格式从 csv 读取您的列。
推荐阅读
- azure - 如何为 Dynamics 365 中的所有实体启用更改跟踪?
- c# - 绑定到 UserControl 内 ListView 的 ItemsSource 和 SelectedValue
- java - 用子视图网格填充屏幕,但子视图是预期大小的一半
- git - 尝试使用 SmartGit 提交时出现“bundle: command not found”。如何在 SmartGit 中更新我的包路径?
- python - CEFpython浏览器在windows上加载空白页,但在mac上完美运行
- python - Python:按条件过滤列表到新列表中
- typescript - 类与接口来描述对象
- c# - 为什么其中一个 navmesh 代理没有移动到下一个航路点?
- c# - 从 IIS 调用相同的 HttpWebRequest 会导致 IIS Express 中的证书错误吗?
- java - 使用retrofit2时如何解决“连接失败”错误?