Avatar of the person chatting

2 / 2Write a python script to prase the following XML into a pandas dataframe. Expect the data to be fetched from an external URL. ``` <VYSLEDKY_OKRSKY xmlns="http://www.volby.cz/ps/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.volby.cz/ps/ ps_vysledky_okrsky.xsd" DATUM_CAS_GENEROVANI="2021-10-09T14:30:00"> <DAVKA PORADI_DAVKY="2" OKRSKY_DAVKA="3" OKRSKY_CELKEM="14886" OKRSKY_ZPRAC="5"/> <OKRSEK CIS_OBEC="550850" CIS_OKRSEK="9" PORADI_ZPRAC="3" DATUM_CAS_ZPRAC="2021-10-09T14:25:39" OPAKOVANE="0"> <UCAST_OKRSEK ZAPSANI_VOLICI="40" VYDANE_OBALKY="32" ODEVZDANE_OBALKY="32" PLATNE_HLASY="32"/> <HLASY_OKRSEK KSTRANA="4" HLASY="3"/> <HLASY_OKRSEK KSTRANA="5" HLASY="2"/> <HLASY_OKRSEK KSTRANA="12" HLASY="1"/> <HLASY_OKRSEK KSTRANA="13" HLASY="12"/> </OKRSEK> <OKRSEK CIS_OBEC="580783" CIS_OKRSEK="1" PORADI_ZPRAC="4" DATUM_CAS_ZPRAC="2021-10-09T14:28:30" OPAKOVANE="0"> <UCAST_OKRSEK ZAPSANI_VOLICI="54" VYDANE_OBALKY="33" ODEVZDANE_OBALKY="33" PLATNE_HLASY="33"/> <HLASY_OKRSEK KSTRANA="3" HLASY="3"/> <HLASY_OKRSEK KSTRANA="4" HLASY="10"/> <HLASY_OKRSEK KSTRANA="5" HLASY="3"/> <HLASY_OKRSEK KSTRANA="8" HLASY="1"/> </OKRSEK> <OKRSEK CIS_OBEC="597678" CIS_OKRSEK="6" PORADI_ZPRAC="5" DATUM_CAS_ZPRAC="2021-10-09T14:30:00" OPAKOVANE="0"> <UCAST_OKRSEK ZAPSANI_VOLICI="46" VYDANE_OBALKY="34" ODEVZDANE_OBALKY="34" PLATNE_HLASY="34"/> <HLASY_OKRSEK KSTRANA="1" HLASY="1"/> <HLASY_OKRSEK KSTRANA="3" HLASY="3"/> <HLASY_OKRSEK KSTRANA="4" HLASY="2"/> <HLASY_OKRSEK KSTRANA="8" HLASY="2"/> </OKRSEK> </VYSLEDKY_OKRSKY> ``` The columns of the DataFrame should be: PORADI_DAVKY,KSTRANA,HLASY,ZAPSANI_VOLICI,CIS_OBEC,CIS_OKRSEK,PORADI_ZPRAC. There should be one row per OKRSEK.

import pandas as pd import xml.etree.ElementTree as ET import requests # fetch XML data from external URL url = "https://example.com/xml_data.xml" xml_data = requests.get(url).text # parse XML data root = ET.fromstring(xml_data) # create empty list to store data data = [] # iterate through OKRSEK elements for okrsek in root.findall(".//OKRSEK"): # extract values from XML elements PORADI_DAVKY = root.find(".//DAVKA").get("PORADI_DAVKY") CIS_OBEC = okrsek.get("CIS_OBEC") CIS_OKRSEK = okrsek.get("CIS_OKRSEK") PORADI_ZPRAC = okrsek.get("PORADI_ZPRAC") ZAPSANI_VOLICI = okrsek.find(".//UCAST_OKRSEK").get("ZAPSANI_VOLICI") for hlasy_okrsek in okrsek.findall(".//HLASY_OKRSEK"): KSTRANA = hlasy_okrsek.get("KSTRANA") HLASY = hlasy_okrsek.get("HLASY") # store values in list data.append([PORADI_DAVKY, KSTRANA, HLASY, ZAPSANI_VOLICI, CIS_OBEC, CIS_OKRSEK, PORADI_ZPRAC]) # create DataFrame from data df = pd.DataFrame(data, columns=["PORADI_DAVKY", "KSTRANA", "HLASY", "ZAPSANI_VOLICI", "CIS_OBEC", "CIS_OKRSEK", "PORADI_ZPRAC"]) # print DataFrame print(df)