我要写一个数据帧的镶木地板文件,以备后用。数据框列上的类型信息对于我的最终用例很重要,但是似乎在写入和读取镶木地板文件时会丢失此信息:
def test_parquet_dtype(self):
pq_file_loc = 'pq.pq'
df = pd.DataFrame({'A': [1,2,3,4], 'B': [1,2,3,4]})
df = df.astype({'A': 'category', 'B': 'object'})
self.assertEqual(['category', 'object'], list(df.dtypes))
df.to_parquet(pq_file_loc)
new_df = pd.read_parquet(pq_file_loc)
self.assertEqual(['category', 'object'], [str(dtype) for dtype in new_df.dtypes])
# Expected: ['category', 'object']
# Actual: ['int64', 'int64']
是否有更好的方法来保存和检索镶木地板文件以维护类型信息?