dask - 使用 Dask 读取包含无效数据的 CSV 列并键入 int64
问题描述
读取凌乱的 CSV 数据和清除无效单元格的最佳方法是什么,以便可以正确键入列。
假设您有以下 CSV 数据:
first_name,age
bob,34
mary,10
kat,hi
您想将first_name
列键入为对象,将age
列键入为 int64。
此代码将出错:
ddf = dd.read_csv("people.csv", dtype={"first_name": "object", "age": "int64"})
这是错误消息:ValueError: invalid literal for int() with base 10: 'hi'
。
当数据集很大时,很难找到有问题的值。
是to_numeric()
解决这个问题的最好方法吗?
ddf = dd.read_csv("people.csv", dtype={"first_name": "object", "age": "object"})
ddf["age"] = dd.to_numeric(ddf["age"], errors='coerce')
print(ddf.compute())
first_name age
0 bob 34.0
1 mary 10.0
2 kat NaN
这是解决此问题的最佳方法吗?
解决方案
推荐阅读
- macos - localhost 显示我在 /usr/local/etc/httpd/extra/httpd-vhosts.conf 中添加虚拟主机时的索引
- c++ - 取出枚举到配置文件
- javascript - 如何从 NSLog 格式化 JSON?
- google-cloud-storage - 如何使用 gsutil 命令在谷歌存储(桶)中创建一个空文件夹?
- python - 当我编写 docker-compose up 时,Django-apache2 以代码 0 退出
- typo3 - 自己的认证服务使用太晚
- c++ - How to return an object pointer with conditional expression?
- siddhi - Keep only alphanumeric characters in string data
- python - 将 Django 部署到谷歌云平台
- python - 根据条件删除数据中的列