對於你們中的一些人來說,這可能是一個簡單的問題。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