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.LZMAFile或tarfile.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。更多详情请参阅fsspec和urllib,有关存储选项的更多示例,请参阅 here 。
- Returns:
- None 或 str
如果
io为 None,则返回生成的 XML 格式作为字符串。否则返回 None。
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>