【发布时间】:2020-11-25 21:35:33
【问题描述】:
我正在尝试将 Python Pandas DataFrame 存储为 Parquet 文件,但遇到了一些问题。我的 Pandas DF 的其中一列包含以下字典:
import pandas as pandas
df = pd.DataFrame({
"ColA": [1, 2, 3],
"ColB": ["X", "Y", "Z"],
"ColC": [
{ "Field": "Value" },
{ "Field": "Value2" },
{ "Field": "Value3" }
]
})
df.to_parquet("test.parquet")
现在,这工作得很好,问题是字典的嵌套值之一与其他值的类型不同。例如:
import pandas as pandas
df = pd.DataFrame({
"ColA": [1, 2, 3],
"ColB": ["X", "Y", "Z"],
"ColC": [
{ "Field": "Value" },
{ "Field": "Value2" },
{ "Field": ["Value3"] }
]
})
df.to_parquet("test.parquet")
这会引发以下错误:
ArrowInvalid: ('cannot mix list and non-list, non-null values', 'Conversion failed for column ColC with type object')
注意,对于 DF 的最后一行,ColC 字典的 Field 属性是一个列表而不是一个字符串。
是否有任何解决方法可以将此 DF 存储为 Parquet 文件?
【问题讨论】:
标签: python pandas dataframe parquet pyarrow