在Panda中读取镶木地板文件(read_parquet())时,如何保持数据类型



代码:

In [31]: df = pd.DataFrame({"a": [[{"b": 1}], [{"b": np.nan}]]})
In [32]: df
Out[32]:
a
0    [{'b': 1}]
1  [{'b': nan}]
In [33]: df.dtypes
Out[33]:
a    object
dtype: object
In [34]: df.to_parquet("a.parquet")
In [35]: pd.read_parquet("a.parquet")
Out[35]:
a
0   [{'b': 1.0}]
1  [{'b': None}]

正如您在这里看到的,[{'b': 1}]变成了[{'b': 1.0}]

即使在阅读拼花地板文件时,我如何保持数据类型?

您可以尝试将pyarrow.parquet.read_tablepyarrow.Table.to_pandasinteger_object_nulls一起使用(请参阅文档(

import pyarrow.parquet as pq
pq.read_table("a.parquet").to_pandas(integer_object_nulls=True)
a
0[{'b':1}]
1[{'b':无}]

最新更新