IDF-Diabetes-Statistiken in Python mit Pandas lesen

English Deutsch

Die International Diabetes Foundation bietet ein Datenportal mit verschiedenen Statistiken zum Thema Diabetes.

In diesem Beitrag zeigen wir, wie man den CSV-Datenexport Diabetes estimates (20-79 y) / People with diabetes, in 1,000s mit pandas liest.

Laden Sie zuerst IDF (people-with-diabetes--in-1-000s).csv von der Datenseite herunter.

Nun können wir die CSV-Datei parsen:

parse_idf_csv.py
import pandas as pd

# Herunterladen unter https://www.diabetesatlas.org/data/en/indicators/1/
df = pd.read_csv("IDF (people-with-diabetes--in-1-000s).csv")
# Jahresspalten parsen, um Floats zu erhalten und mit Tausenderfaktor multiplizieren. Pandas kann Werte wie "12,345.67" nicht parsen
for column in df.columns:
    try:
        int(column)
        df[column] = df[column].apply(lambda s: None if s == "-" else float(s.replace(",", "")) * 1000)
    except:
        pass

Wie Sie im Nachverarbeitungsschritt sehen können, wird die Anzahl der Diabetes-Patienten in der CSV in Tausend angegeben, daher multiplizieren wir sie mit 1000, um die tatsächlichen Zahlen zu erhalten.

Wenn Sie die Datenspalten (d.h. die Spalten, die sich auf Jahre beziehen) modifizieren möchten, können Sie diese einfache Vorlage verwenden:

modify_year_columns.py
for column in df.columns:
    try:
        int(column) # Löst ValueError() aus, wenn die Spalte keine Jahreszahl ist
        # Was auch immer Sie hier tun, wird nur auf Jahresspalten angewendet
        df[column] = df[column] * 0.75 # Beispiel zum Modifizieren einer Spalte
        # Aber beachten Sie, dass Ihr Code eine Exception auslöst, wird sie ignoriert!
    except:
        pass

Lassen Sie uns einige Daten plotten:

plot_diabetes_by_region.py
regions = df[df["Type"] == "Region"] # Nur Regionen, nicht einzelne Länder

from matplotlib import pyplot as plt
plt.style.use("ggplot")
plt.gcf().set_size_inches(20,4)
plt.ylabel("Diabetes-Patienten [Millionen]")
plt.xlabel("Region")
plt.title("Diabetes-Patienten 2019 nach Region")
plt.bar(regions["Country/Territory"], regions["2019"] / 1e6)

Balkendiagramm der Diabetes-Patienten 2019 nach RegionBeachten Sie, dass die Spalte 2019 in Ihrer CSV-Datei möglicherweise nicht existiert, wenn Sie einen aktuelleren Datensatz als die von mir verwendete Version verwenden. Wählen Sie in diesem Fall eine entsprechende Spalte.


Check out similar posts by category: Bioinformatics, Pandas, Python