【发布时间】:2018-01-19 05:30:31
【问题描述】:
也许对你们中的一些人来说是一个简单的问题。
我正在解析一个 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
但我想摆脱 for-each 迭代,因为我想使用地图功能(例如 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(单元)。
【问题讨论】:
标签: python xml pandas iterator map-function