对于你们中的一些人来说,这可能是一个简单的问题。Python Pandas:在迭代器上使用map函数
我正在解析一个XML树,它有一个相当复杂和嵌套的结构。这是部分代码:
import xml.etree.ElementTree as ET
import pandas as pd
from bs4 import BeautifulSoup as BS
tree = ET.parse('input_data.xml')
root = tree.getroot()
for unit in root.iter('xml_element_name'):
# do something with the unit
但我想摆脱的,每次迭代的,因为我想用一个地图功能(如Pandas.Series.map或Pandas.Dataframe.map或任何类似的)。所以这是我想实现的伪代码:
items = pd.Series(root.iter('xml_element_name'))
df = pd.Dataframe(items.map(lambda unit: ....))
但是怎么样?任何想法?
PS:在tutorial of the ElementTree中可以找到示例XML。
为什么我想这样做?因为我想稍后切换到PySpark,所以每个XMLElement(unit)都是并行处理的。
This works 。即使在第一次运行中分割第一个元素(层次结构)是一个好主意。这意味着在调用root.iter()时可以获得多个列,从而创建字典或系列。 – Matthias