Räkna i grupper
I tidigare övningar hämtade du data från tabeller och sammanfattade sedan de resulterande dataframarna i pandas för att skapa diagram. Genom att använda COUNT och GROUP BY i en SQL-fråga kan vi hämta dessa sammanfattande värden direkt från databasen.
Tabellen hpd311calls har en kolumn, complaint_type, som kategoriserar samtalsposter efter ärende, till exempel värme eller VVS. För att kunna visa samtalsvolymer per ärendetyp skriver du en SQL-fråga som COUNTar poster grupperade efter klagomålstyp.
pandas har importerats som pd och databasmotorn för data.db har skapats som engine.
Den här övningen är en del av kursen
Effektiv datainläsning med pandas
Övningsinstruktioner
- Skapa en SQL-fråga som hämtar kolumnen
complaint_typeoch räknar alla poster frånhpd311calls, grupperade eftercomplaint_type. - Skapa en dataframe med
read_sql()över antal samtal per ärendetyp,calls_by_issue. - Kör den sista kodsektionen för att visa ett diagram över antalet samtal för varje bostadsärende.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Create query to get call counts by complaint_type
query = """
____ ____,
____(*)
FROM hpd311calls
____ ____;
"""
# Create dataframe of call counts by issue
calls_by_issue = pd.read_sql(____, ____)
# Graph the number of calls for each housing issue
calls_by_issue.plot.barh(x="complaint_type")
plt.show()