Вы можете использовать xml.etree.ElementTree
модуль. Сначала выполните итерацию по списку XML и проанализируйте необходимые поля. Затем создайте словарь с ключами в качестве имени столбца и значениями в виде строк. Затем передайте этот словарь классу pd.DataFrame
, чтобы создать DataFrame
.
>>> import pandas as pd
>>> import xml.etree.ElementTree as ET
>>> from pprint import pprint
>>>
>>> xmls = [
... """<note>
... <to>John</to>
... <from>Janet</from>
... <heading>Reminder</heading>
... <body>Don't forget me this weekend!</body>
... </note>""",
... """<note>
... <to>Tom</to>
... <from>Jennifer</from>
... <heading>Reminder</heading>
... <body>Don't forget me this weekend!</body>
... </note>""",
... ]
>>>
>>> fields = {}
>>> for i in xmls:
... root = ET.fromstring(i)
... for child in root:
... fields.setdefault(child.tag, []).append(child.text)
...
>>> pprint(fields)
{'body': ["Don't forget me this weekend!", "Don't forget me this weekend!"],
'from': ['Janet', 'Jennifer'],
'heading': ['Reminder', 'Reminder'],
'to': ['John', 'Tom']}
>>> df = pd.DataFrame(fields)
>>> df
to from heading body
0 John Janet Reminder Don't forget me this weekend!
1 Tom Jennifer Reminder Don't forget me this weekend!