То, что происходит в приведенном выше коде, заключается в том, что вы печатаете тип первой «строки» в lst
.
Чтобы ответить на ваш вопрос, вы можете загрузить XML непосредственно в DataFrame без использования списка.
Я мой код ниже Я использую urllib для загрузки XML.
Затем я создаю экземпляр элемента etree с именем xml_doc и заполняю его XML-файлом, загруженным выше.
Далее я определяю индекс столбца моего фрейма данных как список, используя первый2 заголовка столбца, которые вы запросили выше.
И затем перебираем мой элемент XML xml_doc
, добавляя каждую строку во фрейм данных, когда я иду.Наконец, вызов dframe.head()
отобразит первые 5 строк по умолчанию, если вы вызовете dframe.head (10), он отобразит первые десять строк.
Вам нужно будет расширить dfcols, включив в него все нужные заголовки столбцов, и сделать то же самое для вызова pd.Series()
в dframe.append()
.
import xml.etree.ElementTree as ET
import pandas as pd
import urllib.request as request
response = request.urlopen('https://data.cityofnewyork.us/api/views/25th- nujf/rows.xml?accessType=DOWNLOAD')
xml_string = response.read()
xml_doc = ET.fromstring(xml_string)
dfcols = ['_id', 'brth_yr']
dframe = pd.DataFrame(columns=dfcols)
for i in xml_doc.iter(tag='row'):
dframe = dframe.append(pd.Series([i.get('_id'),i.get('brth_yr')], index=dfcols),ignore_index=True)
dframe.head()