pandas.DataFrame.to_orc#

DataFrame.to_orc(path=None, *, engine='pyarrow', index=None, engine_kwargs=None)[源代码][源代码]#

将一个 DataFrame 写入优化行列 (ORC) 格式。

Added in version 1.5.0.

参数:
路径str, 类文件对象或 None, 默认 None

如果是一个字符串,它将在写入分区数据集时用作根目录路径。通过类文件对象,我们指的是具有 write() 方法的对象,例如文件句柄(例如通过内置的 open 函数)。如果路径为 None,则返回一个字节对象。

引擎{‘pyarrow’},默认 ‘pyarrow’

要使用的 ORC 库。

索引bool, 可选

如果 True,在文件输出中包含数据框的索引。如果 False,它们将不会写入文件。如果 None,类似于 infer 数据框的索引将会被保存。然而,不是作为值保存,RangeIndex 将作为范围存储在元数据中,这样不会占用太多空间并且更快。其他索引将作为列包含在文件输出中。

engine_kwargsdict[str, Any] 或 None, 默认 None

传递给 pyarrow.orc.write_table() 的额外关键字参数。

返回:
如果没有提供 path 参数,则返回字节,否则返回 None

如果未指定 path ,则为包含 DataFrame 数据的字节对象,否则为 None。

引发:
NotImplementedError

一个或多个列的数据类型是类别、无符号整数、区间、周期或稀疏。

ValueError

engine 不是 pyarrow。

参见

read_orc

读取一个 ORC 文件。

DataFrame.to_parquet

写入一个 parquet 文件。

DataFrame.to_csv

写一个csv文件。

DataFrame.to_sql

写入一个 sql 表。

DataFrame.to_hdf

写入 hdf。

备注

例子

>>> df = pd.DataFrame(data={"col1": [1, 2], "col2": [4, 3]})
>>> df.to_orc("df.orc")  
>>> pd.read_orc("df.orc")  
   col1  col2
0     1     4
1     2     3

如果你想获取一个指向orc内容的缓冲区,你可以将其写入io.BytesIO

>>> import io
>>> b = io.BytesIO(df.to_orc())  
>>> b.seek(0)  
0
>>> content = b.read()