在python中将ParquetFile转换为带有一组字符串的列的Dataframe
我有一个拼花地板文件,它有一个简单的文件模式和几个列。我使用下面的代码将其读入python在python中将ParquetFile转换为带有一组字符串的列的Dataframe,python,pandas,fastparquet,Python,Pandas,Fastparquet,我有一个拼花地板文件,它有一个简单的文件模式和几个列。我使用下面的代码将其读入python from fastparquet import ParquetFile pf = ParquetFile('inout_files.parquet') 这运行得很好,但当我使用下面的代码将其转换为熊猫时,会出现以下错误: df = pf.to_pandas() 错误是: 为了找到错误的来源,我运行了df=pf.To_pandas(columns=col_To_retrieve)分别添加列,并注意到错误
from fastparquet import ParquetFile
pf = ParquetFile('inout_files.parquet')
这运行得很好,但当我使用下面的代码将其转换为熊猫时,会出现以下错误:
df = pf.to_pandas()
错误是:
为了找到错误的来源,我运行了df=pf.To_pandas(columns=col_To_retrieve)
分别添加列,并注意到错误是从列中的一列引发的,该列的每个单元格都有字符串列表(例如(“a”、“b”、“c”))
您知道如何将其转换为pandas吗?知道存在类型为set(string)的列吗?重新阅读该问题后,我担心我的答案可能是非sequitor 我遇到了一个与非常大的数据框/拼花地板相关的问题,出现了错误: “二进制数组不能包含超过2147483646字节” 它似乎可以读取我的大表而不出错,而pyarrow可以编写它们而不会出现问题,只要我没有类别类型。因此,这是我目前的解决方法,直到问题得到解决: 0)获取不带类别列的dataframe并制作一个表:
import pyarrow as pa
table = pa.Table.from_pandas(df)
1) 使用pyarrow.parquet编写我的表格:
import pyarrow.parquet as pq
pq.write_table(table, 'example.parquet')
2) 使用fastparquet阅读我的表格:
from fastparquet import ParquetFile
pf = ParquetFile('example.parquet')
3) 使用fastparquet转换为熊猫:
df=pf.to_pandas()
重读这个问题后,我担心我的答案可能是不正确的
我遇到了一个与非常大的数据框/拼花地板相关的问题,出现了错误:
“二进制数组不能包含超过2147483646字节”
它似乎可以读取我的大表而不出错,而pyarrow可以编写它们而不会出现问题,只要我没有类别类型。因此,这是我目前的解决方法,直到问题得到解决:
0)获取不带类别列的dataframe并制作一个表:
import pyarrow as pa
table = pa.Table.from_pandas(df)
1) 使用pyarrow.parquet编写我的表格:
import pyarrow.parquet as pq
pq.write_table(table, 'example.parquet')
2) 使用fastparquet阅读我的表格:
from fastparquet import ParquetFile
pf = ParquetFile('example.parquet')
3) 使用fastparquet转换为熊猫:
df=pf.to_pandas()
是否可以使用?谢谢@jezrael,但是当引擎为'fastparquet'时,我得到了相同的错误,并且使用引擎为'pyarrow',我得到了一个错误,我认为下面的错误与同一列问题有关:pyarrow.lib.arrorow错误:Arrow错误:无效:BinaryArray不能包含超过2147483646字节,有2147483775我很担心:(没有其他想法…我开始讨论如何更优雅地处理包含非常大的二进制数据的列谢谢你这是可能的用途?谢谢@jezrael,但是当引擎='fastparquet'时,我得到了相同的错误,而使用引擎='pyarrow',我得到了错误,我认为下面的错误与同一列问题有关:pyarrow.lib.arrorow ioerror:Arrow error:Invalid:BinaryArray包含的字节不能超过2147483646个,有2147483775个字节我很担心:(没有其他想法…我打开了关于更优雅地处理包含非常大二进制数据的列的内容谢谢