Python Pandas pandas.DataFrame.to_xml函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中to_xml方法的使用。

DataFrame.to_xml(path_or_buffer=None, index=True, root_name='data', row_name='row', na_rep=None, attr_cols=None, elem_cols=None, namespaces=None, prefix=None, encoding='utf-8', xml_declaration=True, pretty_print=True, parser='lxml', stylesheet=None, compression='infer', storage_options=None)     [源代码]

将 DataFrame 渲染到 XML 文档。

1.3.0 新版功能。

参数:

path_or_buffer:str, path对象 或 file-like 对象 或 None,默认为None

字符串,path对象(实现os.PathLike[str]),

或实现write()函数的类文件对象。如果为None,则返回一个字符串。

indexbool, 默认为 True

是否在XML文档中包含index。

root_name:str, 默认为 ‘data’

XML文档中根元素的名称。

row_name:str, 默认为 ‘row’

XML文档中row元素的名称。

na_rep:str, 可选的

缺失的数据表示。

attr_cols:list-like, 可选

要作为属性写入行元素的列表。分层列将用下划线分隔不同的级别。

elem_cols:list-like, 可选

要作为子元素写入的列的列表。默认情况下,

所有列输出为row元素的子列。分层列将用下划线分隔不同的级别。

namespaces:dict, 可选

在根元素中定义的所有名称空间。字典的键应该是字典对应uri的前缀名和值。

默认名称空间应该被赋予空的字符串键。例如,

namespaces = {"": "https://example.com"} 

prefix:str, 可选的

名称空间前缀,用于文档中的每个元素和/或属性。

应该是 namespaces 中dict的一个键。

encoding:str, 默认为 ‘utf-8’

结果文档的编码。

xml_declaration:bool, 默认为 True

pretty_printbool, 默认为 True

是否应该使用缩进和换行来漂亮地打印输出。

parser:{‘lxml’,’etree’}, 默认为 ‘lxml’

stylesheet:str, path object 或 file-like object, 可选

URL、类文件对象或包含用于转换原始XML

输出的XSLT脚本的原始字符串。

脚本应该使用原始输出的元素和属性布局。

该参数要求安装lxml。目前只支持XSLT 1.0脚本,不支持更高的版本。

compression:strdict, 默认为 ‘infer’

用于实时压缩输出数据。如果'infer'和' path_or_buffer '类路径,

则检测以下扩展的压缩:‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, 或 ‘.zst’(否则没有压缩)。

设置为None表示不压缩。也可以是一个字典,

'method'设置为{'zip', 'gzip', 'bz2', 'zstd'}

其他键值对分别为zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File 

zstandard.ZstdDecompressor。例如,

可以通过下面的方法来更快地压缩并创建一个可复制的gzip归档文件:

compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

在1.4.0版更改:Zstandard支持。

storage_options:dict, 可选

对于特定存储链接有意义的额外选项,

例如,主机、端口、用户名、密码等。对于HTTP(S) url,

键值对作为头选项转发到urllib。对于其他url(例如以" s3:// "

和" gcs:// "开头)键-值对被转发到fsspec

请参阅fsspecurllib了解更多细节。

返回:

None str

如果ioNone,则返回结果为字符串的XML格式。

否则返回None

例如,

>>> df = pd.DataFrame({'shape': ['square', 'circle', 'triangle'],
                   'degrees': [360, 360, 180],
                   'sides': [4, np.nan, 3]})
>>> df.to_xml()  
<?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>
>>> df.to_xml(attr_cols=[
          'index', 'shape', 'degrees', 'sides'
          ])  
<?xml version='1.0' encoding='utf-8'?>
<data>
  <row index="0" shape="square" degrees="360" sides="4.0"/>
  <row index="1" shape="circle" degrees="360"/>
  <row index="2" shape="triangle" degrees="180" sides="3.0"/>
</data>
>>> df.to_xml(namespaces={"doc": "https://example.com"},
          prefix="doc")  
https://example.com">
  0square3604.01circle3602triangle1803.0

推荐阅读
cjavapy编程之路首页