Pandas 是否以pa.fields列表的格式生成pyarrow架构?

Pandas 是否以pa.fields列表的格式生成pyarrow架构?,pandas,dask,pyarrow,Pandas,Dask,Pyarrow,有没有一种方法可以让我从文件中生成这种格式的pyarrow模式?我有一些文件有数百列,所以我无法手动键入 fields = [ pa.field('id', pa.int64()), pa.field('date', pa.timestamp('ns')), pa.field('name', pa.string()), pa.field('status', pa.dictionary(pa.int8(), pa.string(), ordered=False)

有没有一种方法可以让我从文件中生成这种格式的pyarrow模式?我有一些文件有数百列,所以我无法手动键入

fields = [
    pa.field('id', pa.int64()),
    pa.field('date', pa.timestamp('ns')), 
    pa.field('name', pa.string()), 
    pa.field('status', pa.dictionary(pa.int8(), pa.string(), ordered=False),
]
我想将它保存在一个文件中,然后在使用to_parquet保存数据时显式引用它

我试图使用
schema=pa.schema.from_pandas(df)
,但当我打印出schema时,它的格式不同(我不能像上面的字段示例那样将其保存为数据类型元组列表)

理想情况下,我会使用pandas数据类型字典,然后将其重新映射到上面的字段列表中。可能吗

schema = {
  'id': 'int64',
  'date': 'datetime64[ns]', 
  'name': 'object', 
  'status': 'category',
}

否则,我将创建dtype模式,打印出来并粘贴到文件中,进行任何必要的更正,然后在将文件保存到Parquet之前执行df=df.astype(模式)。但是,我知道分区中的完全空列或混合数据类型的对象列可能会出现问题。

我现在使用的解决方案就是在IDE中查找并替换。当然,一定有更好的方法将长数据类型dict转换为pyarrow模式字段列表。请让我知道!