GOOGLE ADS

Dienstag, 3. Mai 2022

Werte im Zeitverlauf mit Pandas Dataframe darstellen

Ich möchte Datenpunkte aus jedem Land für Prozentsatz und Zeit aus diesem Pandas-Datenrahmen sammeln. Pandas-Datenrahmen

Durch die Verwendung der pandas.iloc-Funktion konnte ich die Daten jedes Landes isolieren

SIPRI_share_GDP.iloc[0]

Welche Ausgänge:

Country Algeria
1949 0.0%
1950 0.0%
1951 0.0%
1952 0.0%
...
2015 6.3%
2016 6.4%
2017 5.9%
2018 5.5%
2019 6.0%

Wenn ich versuche, diese Ausgabe in zwei Arrays von Variablen aufzuteilen:

date_Algeria, GDP_pct_Algeria = SIPRI_share_GDP.iloc[0]

Ich bekomme den Fehler

ValueError: too many values to unpack (expected 2)

Ich verstehe diesen Fehler nicht ganz, da ich dachte, die Ausgabe seien zwei Arrays.

Kann mir jemand sagen wo ich falsch liege? Irgendwelche Hilfe, wie man die Daten richtig in Prozent- und Zeit-Arrays aufteilt?

Danke!


Lösung des Problems

Was hier vor sich geht, ist, dass Python dies als ein einzelnes Objekt betrachtet, eine Pandas-Serie (pandas.core.series.Series). Wenn Sie versuchen, eine Mehrfachzuweisung durchzuführen, wird davon ausgegangen, dass Sie versuchen, jeden Wert aus der Reihe einer Variablen zuzuweisen, und stellt fest, dass nicht genügend Variablen verwendet werden können.

Sie können nur auf den Index (den Teil mit den Jahren) zugreifen, indem Sie verwenden SIPRI_share_GDP.index, und nur auf die Werte, indem Sie verwenden SIPRI_share_GDP.iloc[0].values, sodass Ihr aktualisierter Code wie folgt aussehen würde:

date_Algeria, GDP_pct_Algeria = SIPRI_share_GDP.index, SIPRI_share_GDP.iloc[0].values

Je nachdem, welches Plotpaket Sie verwenden, müssen Sie sie jedoch möglicherweise nicht einmal trennen. Standardmäßig gehen einige Plotpakete davon aus, dass der Index der Serie die gewünschten x-Werte sind. Pandas hat eine integrierte Integration mit Matplotlib, sodass Sie sogar einfach Folgendes verwenden können:

SIPRI_share_GDP.iloc[0].plot()

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...