python - 用dask阅读时如何跳过坏行?

标签 python dask

我正在尝试使用 dask 读取 .txt(大约 700 万行)。但是,大约有 4000 行与列的数据类型不匹配:

+-----------------------------+--------+----------+
| Column                      | Found  | Expected |
+-----------------------------+--------+----------+
| Pro_3FechaAprobacion        | object | int64    |
| Pro_3FechaCancelContractual | object | int64    |
| Pro_3FechaDesembolso        | object | int64    |
+-----------------------------+--------+----------+

The following columns also raised exceptions on conversion:

- Pro_3FechaAprobacion
  ValueError("invalid literal for int() with base 10: '200904XX'")
- Pro_3FechaCancelContractual
  ValueError("invalid literal for int() with base 10: '        '")
- Pro_3FechaDesembolso
  ValueError("invalid literal for int() with base 10: '200904XX'")

我知道这些是日期列,它们的格式类似于 %Y%m%d,但有些记录类似于 %Y%mXX。我想在使用时跳过这些:

df = pd.read_csv("file.txt",error_bad_lines=False)

有什么办法吗?

最佳答案

error_bad_lines=False 关键字取自 pandas.read_csv。我认为它不支持您想要的行为。您可能会考虑使用 pandas 标签提出同样的问题,看看熟悉 Pandas 的 read_csv 函数的人是否可以提供一些建议。 dask.dataframe.read_csv 函数仅使用该代码。

关于python - 用dask阅读时如何跳过坏行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419979/

相关文章:

python - 如何在 Pandas/Dask 中按具有可变 bin 的列离散化大数据帧

python - dask 数据帧的 TypeError : <lambda>() missing 1 required positional argument: 'df' when using data. head()

python - 加载多个 parquet 文件时保留 dask 数据帧划分

Python、mysqldb 和 unicode

python - Cython 不够快

python - 实数的染色体表示?

Python BeautifulSoup 提取 PHP 链接

python - 每个表单应该由不同的 python 函数(Flask)处理

python - 使用 Dask 数据框删除列

python - 如何将 Dask Dataframe 转换为 Dask Array?