Я конвертирую большие файлы CSV в файлы Parquet для дальнейшего анализа.Я читаю данные CSV в Pandas и задаю столбец dtypes
следующим образом
_dtype = {"column_1": "float64",
"column_2": "category",
"column_3": "int64",
"column_4": "int64"}
df = pd.read_csv("data.csv", dtype=_dtype)
Затем выполняю дополнительную очистку данных и записываю данные в Parquet для последующего использования.
_parquet_kwargs = {"engine": "pyarrow",
"compression": "snappy",
"index": False}
df.to_parquet("data.parquet", **_parquet_kwargs)
Но когда я читаю данные в Pandas для дальнейшего анализа с использованием from_parquet
, я не могу восстановить категорию dtypes.Следующее
df = pd.read_parquet("data.parquet")
приводит к DataFrame
с object
dtypes вместо желаемых category
.
Кажется, что следующее работает как ожидалось
import pyarrow.parquet as pq
_table = (pq.ParquetFile("data.parquet")
.read(use_pandas_metadata=True))
df = _table.to_pandas(strings_to_categorical=True)
однако я хотел бы знать, как это можно сделать с помощью pd.read_parquet
.