-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Description
When a CategoricalIndex is written and read back the resulting index is not more categorical.
df = pd.DataFrame([['a', 'b'], ['c', 'd']], columns=['c1', 'c2'])
df['c1'] = df['c1'].astype('category')
df = df.set_index(['c1'])
table = pa.Table.from_pandas(df)
pq.write_table(table, 'test.parquet')
ref_df = pq.read_pandas('test.parquet').to_pandas()
print(df.index)
# CategoricalIndex(['a', 'c'], categories=['a', 'c'], ordered=False, name='c1', dtype='category')
print(ref_df.index)
# Index(['a', 'c'], dtype='object', name='c1')In the metadata the information is correctly contained:
{"name": "c1", "field_name": "c1", "p'
b'andas_type": "categorical", "numpy_type": "int8", "metadata": {"'
b'num_categories": 2, "ordered": false}
Reporter: Armin Berres
Assignee: Wes McKinney / @wesm
Related issues:
- [Python] Support reading Parquet binary/string columns directly as DictionaryArray (relates to)
- [C++] Read Parquet dictionary encoded ColumnChunks directly into an Arrow DictionaryArray (relates to)
- [Python][Parquet] direct reading/writing of pandas categoricals in parquet (relates to)
- [Python] Pandas categorical type doesn't survive a round-trip through parquet (relates to)
PRs and other links:
Note: This issue was originally created as ARROW-3652. Please see the migration documentation for further details.