如何将 Pandas 数据帧转换为 XML? [英] How do convert a pandas dataframe to XML?

查看:41
本文介绍了如何将 Pandas 数据帧转换为 XML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种简单的方法来获取pandas/df表:

field_1 field_2 field_3 field_4猫 15,263 2.52 00:03:00狗 1,652 3.71 00:03:47测试 312 3.27 00:03:41预订 300 3.46 00:02:40

并按照以下方式将其转换为 XML:

<field name="field_1">cat</field><field name="field_2">15263</field><field name="filed_3">2.52</field>...<项目><field name="field_1">dog</field>

解决方案

您可以创建一个函数,从 DataFrame 中的一行创建 item 节点:

def func(row):xml = ['<项目>']对于 row.index 中的字段:xml.append(' <field name="{0}">{1}</field>'.format(field, row[field]))xml.append('</item>')返回 '​​
'.join(xml)

然后沿axis=1应用函数.

<预><代码>>>>打印 ' '.join(df.apply(func,axis=1))<项目><field name="field_1">cat</field><field name="field_2">15,263</field><field name="field_3">2.52</field><field name="field_4">00:03:00</field></项目><项目><field name="field_1">dog</field><field name="field_2">1,652</field><field name="field_3">3.71</field><field name="field_4">00:03:47</field></项目>...

Is there a simple way to take a pandas/df table:

field_1 field_2 field_3 field_4
cat     15,263  2.52    00:03:00
dog     1,652   3.71    00:03:47
test     312    3.27    00:03:41
book     300    3.46    00:02:40

And convert it to XML along the lines of:

<item>
  <field name="field_1">cat</field>
  <field name="field_2">15263</field>
  <field name="filed_3">2.52</field>

...

<item>
      <field name="field_1">dog</field>

etc.

解决方案

You can create a function that creates the item node from a row in your DataFrame:

def func(row):
    xml = ['<item>']
    for field in row.index:
        xml.append('  <field name="{0}">{1}</field>'.format(field, row[field]))
    xml.append('</item>')
    return '
'.join(xml)

And then apply the function along the axis=1.

>>> print '
'.join(df.apply(func, axis=1))
<item>
  <field name="field_1">cat</field>
  <field name="field_2">15,263</field>
  <field name="field_3">2.52</field>
  <field name="field_4">00:03:00</field>
</item>
<item>
  <field name="field_1">dog</field>
  <field name="field_2">1,652</field>
  <field name="field_3">3.71</field>
  <field name="field_4">00:03:47</field>
</item>
...

这篇关于如何将 Pandas 数据帧转换为 XML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆