pandas.DataFrame.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 版本加入.

Parameters:
path_or_bufferstr, path object, file-like object, or None, default None

字符串、路径对象(实现 os.PathLike[str])或实现 write() 函数的文件类对象。如果为 None,则结果将作为字符串返回。

indexbool, default True

是否在 XML 文档中包含索引。

root_namestr,默认值为 ‘data’

XML 文档中根元素的名称。

row_namestr,默认值为 ‘row’

XML 文档中行元素的名称。

na_repbool, default False

缺失数据表示。

attr_cols类列表,可选

要作为行元素属性写入的列列表。层级列将使用下划线连接不同级别进行展平。

elem_cols类列表,可选

类列表,可选

namespacesdict, 可选

要在根元素中定义的所有命名空间。字典的键应该是前缀名,字典的值应该是相应的 URI。默认命名空间应以空字符串键给出。例如:

namespaces = {"": "https://example.com"}
prefixbool, default False

将在文档中的每个元素和/或属性使用的命名空间前缀。这应该是 namespaces 字典中的一个键。

encodingstr,默认值为 ‘utf-8’

生成文档的编码。

xml_declarationbool, default True

是否在文档开头包含 XML 声明。

pretty_printbool, default True

输出是否应使用缩进和换行进行美化打印。

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

用于构建树的解析器模块。仅支持 ‘lxml’ 和 ‘etree’。使用 ‘lxml’ 时,支持使用 XSLT 样式表。

stylesheetstr、路径对象或文件类对象,可选

一个 URL、文件类对象或包含 XSLT 脚本的原始字符串,用于转换原始 XML 输出。脚本应使用原始输出的元素和属性布局。此参数需要安装 lxml。目前仅支持 XSLT 1.0 脚本,不支持后续版本。

compressionstr or dict, default ‘infer’

用于对输出数据进行即时压缩。如果为 ‘infer’ 且 ‘path_or_buffer’ 是类路径,则根据以下扩展名检测压缩:’.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ 或 ‘.tar.bz2’(否则不进行压缩)。设置为 None 表示不压缩。也可以是一个字典,其中键 'method' 设置为 {'zip', 'gzip', 'bz2', 'zstd', 'xz', 'tar'} 中的一个,其他键值对会被转发给 zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdCompressor, lzma.LZMAFiletarfile.TarFile。例如,可以传递以下参数以实现更快的压缩并创建可重现的 gzip 存档:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

在 1.5.0 版本加入: 增加了对 .tar 文件的支持。

在 1.4.0 版本发生变更: Zstandard 支持。

storage_optionsdict, 可选

适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发给 urllib.request.Request。对于其他 URL(例如,以 “s3://”, 和 “gcs://” 开头的 URL),键值对将转发给 fsspec.open。更多详情请参阅 fsspecurllib,有关存储选项的更多示例,请参阅 here

Returns:
None 或 str

如果 io 为 None,则返回生成的 XML 格式作为字符串。否则返回 None。

参见

to_json

将 pandas 对象转换为 JSON 字符串。

to_html

将 DataFrame 转换为 html。

Examples

>>> 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")  
<?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="https://example.com">
  <doc:row>
    <doc:index>0</doc:index>
    <doc:shape>square</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides>4.0</doc:sides>
  </doc:row>
  <doc:row>
    <doc:index>1</doc:index>
    <doc:shape>circle</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides/>
  </doc:row>
  <doc:row>
    <doc:index>2</doc:index>
    <doc:shape>triangle</doc:shape>
    <doc:degrees>180</doc:degrees>
    <doc:sides>3.0</doc:sides>
  </doc:row>
</doc:data>