4. pandas und matplotlib

4. pandas und matplotlib#

Erinnerst du dich an die Bibliothek, die wir im letzten Kapitel installiert haben? Diese Bibliothek heißt pandas und ist vermutlich die am häufigsten verwendete Bibliothek in Python. Sie erlaubt es uns, beliebige Daten in eine Tabelle zu verwandeln, die wir anschließend analysieren und visualisieren können.

Schauen wir sie uns in Aktion an:

import pandas as pd
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
hobby = ["Python-Tutorials abschließen", "Sport", "Python-Tutorials abschließen"]
data = {"Name": names, "Alter": ages, "Hobby": hobby}
df = pd.DataFrame(data)
print(df)
      Name  Alter                         Hobby
0    Alice     25  Python-Tutorials abschließen
1      Bob     30                         Sport
2  Charlie     35  Python-Tutorials abschließen

Wie du siehst, erlaubt es uns pandas, unsere Daten sauber in Tabellenform zu organisieren.

Wir können jetzt die groupby-Funktion von pandas verwenden, um unsere Daten nach einer bestimmten Spalte zu gruppieren und dann eine Funktion auf jede Gruppe anzuwenden. In diesem Fall gruppieren wir nach der Spalte “Hobby” und zählen, wie viele Personen dasselbe Hobby haben:

df_grouped = df.groupby("Hobby").size()
print(df_grouped)
Hobby
Python-Tutorials abschließen    2
Sport                           1
dtype: int64

Nehmen wir nun an, wir haben eine CSV-Datei namens “prices.csv”, die wir normalerweise mit Microsoft Excel öffnen würden und die Daten enthält, die wir analysieren möchten. pandas erlaubt es uns, Excel- bzw. CSV-Dateien mit nur einer Zeile in ein DataFrame einzulesen:

price_data = pd.read_csv("prices.csv")
print(price_data)
      timestamp  difference
0    2022-01-01     -842.52
1    2022-01-02     1490.70
2    2022-01-03     -495.08
3    2022-01-04     -734.92
4    2022-01-05     -610.64
..          ...         ...
360  2022-12-27      112.44
361  2022-12-28     -242.95
362  2022-12-29     -154.67
363  2022-12-30       86.83
364  2022-12-31      -21.54

[365 rows x 2 columns]

Diese Datei enthält Zeitstempel und die Kursveränderungen einer Aktie zwischen den jeweiligen Zeitpunkten. Wenn wir nur die Daten für einen bestimmten Zeitraum sehen wollen, können wir das DataFrame mit der Funktion loc filtern. In diesem Fall wollen wir die Daten vom 01.02.2022 bis zum 01.09.2023 anzeigen:

start_date = "2022-02-01"
end_date = "2023-09-01"
filtered_data = price_data.loc[(price_data["timestamp"] >= start_date) & (price_data["timestamp"] <= end_date)]
print(filtered_data)
      timestamp  difference
31   2022-02-01      503.88
32   2022-02-02      317.67
33   2022-02-03    -1836.18
34   2022-02-04      337.87
35   2022-02-05     4293.08
..          ...         ...
360  2022-12-27      112.44
361  2022-12-28     -242.95
362  2022-12-29     -154.67
363  2022-12-30       86.83
364  2022-12-31      -21.54

[334 rows x 2 columns]

Um diese zeitabhängigen Daten zu visualisieren, können wir zunächst die Spalte mit den Zeitstempeln in ein Datumsformat umwandeln und dann ein Diagramm erstellen:

import matplotlib.pyplot as plt
price_data["timestamp"] = pd.to_datetime(price_data["timestamp"])
price_data.plot(x="timestamp", y="difference")
plt.show()
_images/beb05df876cf7d5e266e0dbb48311ca5da0507ef03411f59a34fc28c62132084.png