Я пытаюсь преобразовать файл xml в df, используя приведенный ниже код. Это в настоящее время проходит через создание 4 х 21 df. Однако в наборе данных содержится более 1000 парковок, поэтому я ожидаю 1000 x 21 df.
import xmltodict
import pandas as pd
sites = []
n = 0
with open('CarParkData_1.xml', 'r') as f:
data = xmltodict.parse(f.read())['CarParkDataImport']
for carpark in data:
a = data['CarPark'][n]
sites.append(a)
n=n+1
df = pd.DataFrame(sites)
df.shape
Чтобы получить полный набор данных, мне нужно вложить в циклы, как здесь;
import xmltodict
import pandas as pd
sites = []
n = 0
with open('CarParkData_1.xml', 'r') as f:
data = xmltodict.parse(f.read())['CarParkDataImport']
for carpark in data:
b = data['CarPark'][n]
sites.append(b)
n=n+1
for carpark in data:
b = data['CarPark'][n]
sites.append(b)
n=n+1
for carpark in data:
b = data['CarPark'][n]
sites.append(b)
n=n+1
for carpark in data:
b = data['CarPark'][n]
sites.append(b)
n=n+1
for carpark in data:
b = data['CarPark'][n]
sites.append(b)
n=n+1
df = pd.DataFrame(sites)
df.shape
Теперь вывод (1364, 21). Похоже, что некоторые данные содержат только 20 элементов, а не 21, и я подумал, может ли это быть причиной. Кто-нибудь знает, почему это не работает, или лучший способ исправить это.
Данные являются открытыми исходными данными Великобритании парковки.