So gruppieren sie daten in pandas nach zeit (mit beispiel)


Sie können die folgende Syntax verwenden, um Daten nach Zeit zu gruppieren und eine Aggregation in Pandas durchzuführen:

 df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

In diesem speziellen Beispiel werden die Werte pro Stunde in einer Spalte namens „ Stunde “ gruppiert und dann die Summe der Werte in der Spalte „Umsätze “ für jede Stunde berechnet.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Daten in Pandas nach Zeit gruppieren

Nehmen wir an, wir haben den folgenden Pandas-DataFrame, der die Anzahl der Verkäufe zu verschiedenen Tageszeiten für ein Geschäft anzeigt:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': ['2022-01-01 01:14:00', '2022-01-01 01:24:15',
                            '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                            '2022-01-01 04:05:10', '2022-01-01 05:35:09'],
                   ' sales ': [18, 20, 15, 14, 10, 9]})

#convert date column to datetime
df[' time '] = pd. to_datetime (df[' time '])

#view DataFrame
print (df)

                 time sales
0 2022-01-01 01:14:00 18
1 2022-01-01 01:24:15 20
2 2022-01-01 02:52:19 15
3 2022-01-01 02:54:00 14
4 2022-01-01 04:05:10 10
5 2022-01-01 05:35:09 9

Wir können die folgende Syntax verwenden, um die Zeitspalte nach Stunden zu gruppieren und die Summe der Verkäufe für jede Stunde zu berechnen:

 #group by hours in time column and calculate sum of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

time
1 38
2 29
4 10
5 9
Name: sales, dtype: int64

Aus dem Ergebnis können wir sehen:

  • Insgesamt wurden in der ersten Stunde 38 Verkäufe getätigt.
  • Insgesamt wurden in der zweiten Stunde 29 Verkäufe getätigt.
  • In der vierten Stunde wurden insgesamt 10 Verkäufe getätigt.
  • In der fünften Stunde wurden insgesamt 9 Verkäufe getätigt.

Beachten Sie, dass wir auch eine andere Aggregation durchführen können.

Wir könnten zum Beispiel die durchschnittliche Anzahl der Verkäufe pro Stunde berechnen:

 #group by hours in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . mean ()

time
1 19.0
2 14.5
4 10.0
5 9.0
Name: sales, dtype: float64

Wenn wir möchten, können wir auch nach Stunden und Minuten gruppieren.

Der folgende Code zeigt beispielsweise, wie die Summe der Verkäufe, gruppiert nach Stunden und Minuten, berechnet wird:

 #group by hours and minutes in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour , df[' time ']. dt . minute ]). dirty . mean ()

time time
1 14 18
      24 20
2 52 15
      54 14
4 5 10
5 35 9
Name: sales, dtype: int64

Aus dem Ergebnis können wir sehen:

  • Die durchschnittliche Anzahl der Verkäufe über 1 Stunde und 14 Minuten betrug 18 .
  • Die durchschnittliche Anzahl der Verkäufe während 1 Stunde und 23 Minuten betrug 20 .
  • Die durchschnittliche Anzahl der Verkäufe über 2 Stunden und 52 Minuten betrug 15 .

Und so weiter.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So erstellen Sie einen Datumsbereich in Pandas
So extrahieren Sie den Monat aus dem Datum in Pandas
So konvertieren Sie den Zeitstempel in Pandas in Datum/Uhrzeit

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert