创建 Pandas DataFrame 时,通常使用的是 CSV 或 Excel 等常见格式的表格数据。但实际上,Pandas 还提供了非常便捷的方法来从 XML 格式的数据中创建 DataFrame。本文将详细讲解如何从嵌套的 XML 创建 Pandas DataFrame。
数据准备
我们先准备一个嵌套的 XML 示例数据,如下:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<title>Python数据分析实战</title>
<author>朱旺孝</author>
<category>
<name>计算机技术</name>
<subcategory>Python编程</subcategory>
</category>
<price>59.9</price>
</book>
<book>
<title>Python爬虫开发与项目实战</title>
<author>沈志华</author>
<category>
<name>计算机技术</name>
<subcategory>爬虫编程</subcategory>
</category>
<price>49.9</price>
</book>
</books>
读取 XML 数据
使用 Pandas 的 read_xml
函数,可以轻松读取 XML 数据,具体代码如下:
import pandas as pd
xml_data = """<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<title>Python数据分析实战</title>
<author>朱旺孝</author>
<category>
<name>计算机技术</name>
<subcategory>Python编程</subcategory>
</category>
<price>59.9</price>
</book>
<book>
<title>Python爬虫开发与项目实战</title>
<author>沈志华</author>
<category>
<name>计算机技术</name>
<subcategory>爬虫编程</subcategory>
</category>
<price>49.9</price>
</book>
</books>"""
df = pd.read_xml(xml_data, xpath='/books/book')
在 read_xml
函数中,我们需要提供两个参数:XML 数据和 xpath
参数。xpath
参数的值为 "/books/book",意味着我们要从 XML 中选取 "books" 字段下 "book" 字段所对应的数据。
转换 DataFrame
接下来,将得到的数据转换为 DataFrame,代码如下:
df = pd.read_xml(xml_data, xpath='/books/book')
df = pd.json_normalize(df.to_dict(orient='records'),
record_path=['category'],
meta=['title', 'author', 'price'],
record_prefix='category.')
del df['category']
首先,我们将 DataFrame 转换为以记录为单位的字典格式。然后,使用 json_normalize
函数,将 "category" 字段展开。
最后,删除 "category" 字段,并将结果展示出来:
print(df)
上述代码会输出如下结果:
category.name category.subcategory title author price
0 计算机技术 Python编程 Python数据分析实战 朱旺孝 59.9
1 计算机技术 爬虫编程 Python爬虫开发与项目实战 沈志华 49.9
以上就是从嵌套的 XML 数据创建 Pandas DataFrame 的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何从嵌套的XML创建Pandas DataFrame - Python技术站