简体   繁体   English

在 pandas 中读取镶木地板文件(read_parquet())时如何保留 dtypes?

[英]How to keep dtypes when reading a parquet file(read_parquet()) in pandas?

Code:代码:

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}]

As you can see here, [{'b': 1}] becomes [{'b': 1.0}] .正如您在此处看到的, [{'b': 1}]变为[{'b': 1.0}]

How can I keep dtypes even in reading the parquet file?即使在阅读镶木地板文件时,我如何保持 dtypes?

Try to turn on use_nullable_dtypes尝试开启use_nullable_dtypes

df = pd.DataFrame({"a": [[{"b": 1}], [{"b": None}]]})
df.dtypes

df.to_parquet("a.parquet")
pd.read_parquet("a.parquet", use_nullable_dtypes=True)
a一个
0 0 [{'b': 1.0}] [{'b': 1.0}]
1 1 [{'b': None}] [{'b':无}]

See the pandas doc for more explaination有关更多说明,请参阅pandas 文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM