Pandas ist eine leistungsstarke Python-Bibliothek zur Datenmanipulation und -analyse, und die Berechnung von Summen von Spaltenwerten ist eine häufig verwendete Aufgabe. Dieser Artikel untersucht verschiedene Methoden zur effizienten Summierung von Daten in Pandas DataFrames, einschließlich der grundlegenden Summierung, kumulativer Summen mit Gruppierung und bedingter Summierung.
Inhaltsverzeichnis:
- Grundlegende Summierung von Pandas DataFrame-Spalten
- Kumulative Summe mit
groupby()
- Bedingte Summierung basierend auf anderen Spaltenwerten
1. Grundlegende Summierung von Pandas DataFrame-Spalten
Die einfachste Möglichkeit, eine Pandas DataFrame-Spalte zu summieren, ist die Verwendung der Methode .sum()
. Diese berechnet direkt die Summe aller Werte in der angegebenen Spalte. Nicht-numerische Werte werden ignoriert.
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
# Summe der Spalte 'A'
sum_A = df['A'].sum()
print(f"Summe der Spalte A: {sum_A}") # Ausgabe: Summe der Spalte A: 15
# Summe der Spalte 'B'
sum_B = df['B'].sum()
print(f"Summe der Spalte B: {sum_B}") # Ausgabe: Summe der Spalte B: 40
# Summe aller numerischen Spalten
sum_all = df.sum()
print(f"Summe aller numerischen Spalten:n{sum_all}")
2. Kumulative Summe mit groupby()
Die Berechnung kumulativer Summen innerhalb von Gruppen erfordert die Methode groupby()
in Kombination mit .cumsum()
. Dies ermöglicht eine effiziente Aggregation über verschiedene Kategorien.
import pandas as pd
data = {'Group': ['X', 'X', 'Y', 'Y', 'Y'],
'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Gruppieren nach 'Group' und Berechnung der kumulativen Summe von 'Value'
cumulative_sum = df.groupby('Group')['Value'].cumsum()
df['Kumulative Summe'] = cumulative_sum
print(df)
Dies gibt einen DataFrame mit einer Spalte „Kumulative Summe“ aus, die die kumulative Summe für jede Gruppe anzeigt.
3. Bedingte Summierung basierend auf anderen Spaltenwerten
Die bedingte Summierung ermöglicht es Ihnen, Werte basierend auf Bedingungen zu summieren, die auf andere Spalten angewendet werden. Boolesche Indizierung und die Methode .sum()
erreichen dies.
import pandas as pd
data = {'Category': ['A', 'B', 'A', 'B', 'A'],
'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)
# Summe von 'Sales', wo 'Category' 'A' ist
sum_A = df[df['Category'] == 'A']['Sales'].sum()
print(f"Summe der Sales für Kategorie A: {sum_A}") # Ausgabe: Summe der Sales für Kategorie A: 600
# Summe von 'Sales', wo 'Sales' größer als 200 ist
sum_greater_200 = df[df['Sales'] > 200]['Sales'].sum()
print(f"Summe der Sales größer als 200: {sum_greater_200}") # Ausgabe: Summe der Sales größer als 200: 550
Dies zeigt die Filterung des DataFrames vor der Summierung für leistungsstarke bedingte Aggregationen. Denken Sie daran, diese Techniken an Ihre spezifischen Daten und Anforderungen anzupassen. Pandas bietet viele Werkzeuge für eine effiziente Datenanalyse.