Saltar al contenido

¿Cómo leer un archivo CSV comprimido (gz) en un marco de datos dask?

Solución:

La documentación actual de Panda dice:

compresión: {‘inferir’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, predeterminado ‘infer’

Dado que ‘inferir’ es el valor predeterminado, eso explicaría por qué funciona con pandas.

La documentación de Dask sobre el compresión argumento:

Cadena como ‘gzip’ o ‘xz’. Debe admitir un acceso aleatorio eficiente. Los nombres de archivo con extensiones correspondientes a algoritmos de compresión conocidos (gz, bz2) se comprimirán automáticamente en consecuencia.

Eso sugeriría que también debería inferir la compresión durante al menos gz. Que no lo haga (y todavía no lo hace en 0.15.3) puede ser un error. Sin embargo, funciona con la compresión = ‘gzip’.

es decir:

import dask.dataframe as dd
df = dd.read_csv("Data.gz", compression='gzip')

En realidad, es una limitación de dask de larga data. Cargue los archivos con dask.delayed en lugar de:

import pandas as pd
import dask.dataframe as dd
from dask.delayed import delayed

filenames = ...
dfs = [delayed(pd.read_csv)(fn) for fn in filenames]

df = dd.from_delayed(dfs) # df is a dask dataframe
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *