Pythonで子と孫の数が異なるXMLからデータフレーム作成
解決したいこと
Pythonで子と孫の数が異なる場合のXMLを解析してデータフレームを作成したいです。
例)以下の様なXMLがある場合にNullを含めてデータを取得したいと考えています。
<?xml version="1.0"?>
<data>
<country name="Japan">
<Prefecture name = "Tokyo">
<City name = "Shinagawa"/>
</Prefecture>
<Prefecture name = "Tokyo">
<City name = "Shibuya"/>
</Prefecture>
<Prefecture name = "Tokyo">
<City name = "Shinjuku"/>
</Prefecture>
<Prefecture name = "Tokyo">
</Prefecture>
<Prefecture name = "Kanagawa">
<City name = "Yokohama"/>
</Prefecture>
<Prefecture name = "Kanagawa">
<City name = "Kawasaki"/>
</Prefecture>
</country>
</data>
こんなデータフレームになることを期待しているのですが、XMLの解析方法がわからず困っております。
自分で試したこと
PrefectureとCityを別々で取得することはできたのですが、数が異なるのでConcatもできず、もっとスマートな方法があるかと思うのですが、到底解決にはいたりませんでしたので、お力添えをいただきたく思います。
df_pref = pd.DataFrame()
for x in eroot.findall(".//Prefecture"):
df_pref = pd.concat([df_pref,pd.DataFrame([x.attrib])])
df_city = pd.DataFrame()
for x in eroot.findall(".//City"):
df_city = pd.concat([df_city,pd.DataFrame([x.attrib])])
0 likes