pandas.DataFrame.to_xml #

数据框。to_xml ( path_or_buffer = None , * , index = True , root_name = 'data' , row_name = 'row' , na_rep = None , attr_cols = None , elem_cols = None ,命名空间= None , prefix = None ,编码= '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,路径对象,类文件对象,或 None,默认 None

字符串、路径对象(实现os.PathLike[str])或实现write()函数的类文件对象。如果没有,则结果以字符串形式返回。

索引bool,默认 True

XML 文档中是否包含索引。

root_name str,默认“数据”

XML 文档中根元素的名称。

row_name str,默认“行”

XML 文档中行元素的名称。

na_rep str,可选

缺少数据表示。

attr_cols类似列表,可选

要写入行元素中的属性的列列表。分层列将被展平,并用下划线界定不同级别。

elem_cols类似列表,可选

要在行元素中作为子项写入的列的列表。默认情况下,所有列都输出为行元素的子元素。分层列将被展平,并用下划线界定不同级别。

命名空间字典,可选

所有命名空间都在根元素中定义。 dict 的键应该是 dict 对应 URI 的前缀名称和值。默认命名空间应指定空字符串键。例如,

namespaces = {"": "https://example.com"}
前缀str,可选

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

编码str,默认'utf-8'

结果文档的编码。

xml_declaration bool, 默认 True

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

Pretty_print bool, 默认 True

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

解析器{'lxml','etree'}, 默认 'lxml'

用于构建树的解析器模块。仅支持“lxml”和“etree”。通过“lxml”,支持使用 XSLT 样式表的能力。

stylesheet str,路径对象或类文件对象,可选

URL、类似文件的对象或包含用于转换原始 XML 输出的 XSLT 脚本的原始字符串。脚本应使用原始输出中的元素和属性的布局。该参数需要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'之一的字典,其他键值对分别转发到 , , , ,或 。例如,可以传递以下内容以加快压缩速度并创建可重现的 gzip 存档: .'zip''gzip''bz2''zstd''xz''tar'zipfile.ZipFilegzip.GzipFilebz2.BZ2Filezstandard.ZstdCompressorlzma.LZMAFiletarfile.TarFilecompression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

1.5.0 版本中的新增功能:添加了对.tar文件的支持。

版本 1.4.0 中更改: Zstandard 支持。

storage_options字典,可选

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

返回
无或 str

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

也可以看看

to_json

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

to_html

将 DataFrame 转换为 html。

例子

>>> 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>