📅  最后修改于: 2023-12-03 15:08:15.639000             🧑  作者: Mango
在数据处理中,XML(可扩展标记语言)格式是一种常见的数据格式。如果XML数据存在嵌套结构,通常需要将其转换为Pandas DataFrame以便进行数据分析。本文将介绍如何从嵌套的XML创建Pandas DataFrame。
使用Python标准库中的ElementTree模块解析XML文件。示例代码如下:
import xml.etree.ElementTree as ET
# 解析XML文件
tree = ET.parse('data.xml')
root = tree.getroot()
在解析XML文件之后,需要创建一个空的DataFrame,用于保存XML中的数据。
import pandas as pd
# 创建空的DataFrame
df = pd.DataFrame(columns=['name', 'age', 'gender'])
注意,空的DataFrame中需要包含XML文件中可能出现的所有列名。在本例中,我们使用名称(name),年龄(age)和性别(gender)列名。
遍历XML文件并将数据填充到DataFrame中。在本例中,我们的XML数据具有以下结构:
<root>
<person>
<name>John Smith</name>
<age>30</age>
<gender>Male</gender>
</person>
<person>
<name>Jane Doe</name>
<age>25</age>
<gender>Female</gender>
</person>
</root>
因此,我们需要定义一个循环遍历每个person元素,并将其name、age和gender元素的值添加到DataFrame中。
# 循环遍历每个person元素
for person in root.findall('person'):
# 获取name、age、gender元素的值
name = person.find('name').text
age = person.find('age').text
gender = person.find('gender').text
# 将数据添加到DataFrame
df = df.append({'name': name, 'age': age, 'gender': gender}, ignore_index=True)
循环遍历XML数据并将其填充到DataFrame中。 ignore_index =True 选项用于在添加行时重新编号索引。
以下是完整的示例代码:
import xml.etree.ElementTree as ET
import pandas as pd
# 解析XML文件
tree = ET.parse('data.xml')
root = tree.getroot()
# 创建空的DataFrame
df = pd.DataFrame(columns=['name', 'age', 'gender'])
# 循环遍历每个person元素
for person in root.findall('person'):
# 获取name、age、gender元素的值
name = person.find('name').text
age = person.find('age').text
gender = person.find('gender').text
# 将数据添加到DataFrame
df = df.append({'name': name, 'age': age, 'gender': gender}, ignore_index=True)
print(df)
以上就是如何从嵌套的XML创建Pandas DataFrame的方法。使用ElementTree模块解析XML文件,使用Pandas DataFrame保存数据。可以根据XML文件的结构将数据添加到DataFrame中。