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 文档。
Added in version 1.3.0.
- 参数:
- path_or_bufferstr, 路径对象, 类文件对象, 或 None, 默认 None
字符串、路径对象(实现
os.PathLike[str]
)或实现write()
函数的类文件对象。如果为 None,结果将作为字符串返回。- 索引bool, 默认为 True
是否在XML文档中包含索引。
- root_namestr, 默认 ‘data’
XML 文档中根元素的名称。
- row_namestr, 默认 ‘row’
XML 文档中行元素的名称。
- na_repstr, 可选
缺失数据表示。
- attr_cols类似列表的,可选的
要在行元素中写入的列列表。层次列将以下划线分隔不同级别的方式展平。
- elem_cols类似列表的,可选的
要在行元素中作为子元素写入的列列表。默认情况下,所有列都作为行元素的子元素输出。层次列将以下划线分隔不同级别的方式展平。
- 命名空间dict, 可选
所有命名空间应在根元素中定义。字典的键应为前缀名称,字典的值对应URI。默认命名空间应使用空字符串键。例如,:
namespaces = {"": "https://example.com"}
- 前缀str, 可选
在文档中用于每个元素和/或属性的命名空间前缀。这应该是
namespaces
字典中的一个键。- 编码str, 默认 ‘utf-8’
生成文档的编码。
- xml_declarationbool, 默认为 True
是否在文档开始处包含XML声明。
- pretty_printbool, 默认为 True
输出是否应以缩进和换行进行美化打印。
- 解析器{‘lxml’,’etree’}, 默认 ‘lxml’
用于构建树的解析器模块。仅支持 ‘lxml’ 和 ‘etree’。使用 ‘lxml’ 时,支持使用 XSLT 样式表。
- 样式表str, 路径对象或类文件对象, 可选
一个 URL、类文件对象或包含 XSLT 脚本的原始字符串,用于转换原始 XML 输出。脚本应使用原始输出中的元素和属性布局。此参数需要
lxml
已安装。目前仅支持 XSLT 1.0 脚本,不支持更高版本。- 压缩str 或 dict,默认 ‘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}
。Added in version 1.5.0: 增加了对 .tar 文件的支持。
在 1.4.0 版本发生变更: Zstandard 支持。
- storage_optionsdict, 可选
对于特定的存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S) URL,键值对被转发到
urllib.request.Request
作为头部选项。对于其他URL(例如以“s3://”和“gcs://”开头),键值对被转发到fsspec.open
。请参阅fsspec
和urllib
了解更多详情,关于存储选项的更多示例请参考 这里。
- 返回:
- 无或字符串
如果
io
是 None,则返回生成的 XML 格式作为字符串。否则返回 None。
例子
>>> df = pd.DataFrame( ... [["square", 360, 4], ["circle", 360, np.nan], ["triangle", 180, 3]], ... columns=["shape", "degrees", "sides"], ... )
>>> 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>