【发布时间】:2019-07-10 21:35:27
【问题描述】:
我正在将大型 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)
但是当我使用from_parquet 将数据读入 Pandas 以进行进一步分析时,我似乎无法恢复类别 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 来完成此操作。
【问题讨论】:
标签: python-3.x pandas parquet pyarrow