Pandas: NumPy-Funktion auf jede Spalte anwenden
English
Deutsch
Du kannst df.transform(func, axis=0) verwenden, um eine NumPy-Funktion anzuwenden. Dies nutzt die Tatsache, dass NumPy-Funktionen mit pandas Series-Objekten funktionieren.
Beispiel basierend auf How to create pandas time series DataFrame example dataset:
pandas_apply_numpy_to_columns.py
# Vordefiniertes Zeitreihen-Beispieldatenset laden
df = pd.read_csv("https://datasets.techoverflow.net/timeseries-example.csv", parse_dates=["Timestamp"])
df.set_index("Timestamp", inplace=True)
# np.square wird individuell für jede Spalte aufgerufen
new_df = df.transform(np.square, axis=0)Ausgabe
Original Zeitreihe:
Vollständiger Beispielcode
pandas_apply_numpy_full.py
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
# Vordefiniertes Zeitreihen-Beispieldatenset laden
df = pd.read_csv("https://datasets.techoverflow.net/timeseries-example.csv", parse_dates=["Timestamp"])
df.set_index("Timestamp", inplace=True)
# np.sqrt wird individuell für jede Spalte aufgerufen
new_df = df.transform(np.square, axis=0)
# Teilabschnitt des originalen DF für bessere Sichtbarkeit plotten
df.iloc[:len(df)//2].plot()
plt.gcf().set_size_inches(10,5)
plt.savefig("Normal-Timeseries.svg")
# Teilabschnitt des transformierten DF für bessere Sichtbarkeit plotten
new_df.iloc[:len(df)//2].plot()
plt.gcf().set_size_inches(10,5)
plt.savefig("Square-Timeseries.svg")If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow