Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere ich Daten nach Zeitintervall in Python Pandas?

Wie gruppiere ich Daten nach Zeitintervall in Python Pandas?

PHPz
PHPznach vorne
2023-08-29 14:13:02841Durchsuche

如何在Python Pandas中按时间间隔分组数据?

Datenanalyse wird immer mehr zu einem wichtigen Aspekt jeder Branche. Viele Unternehmen sind stark auf Informationen angewiesen, um strategische Entscheidungen zu treffen, Trends vorherzusagen und das Verbraucherverhalten zu verstehen. In einer solchen Umgebung erweist sich die Pandas-Bibliothek von Python als leistungsstarkes Gerät, das eine Vielzahl von Funktionen für die erfolgreiche Bearbeitung, Zerlegung und Visualisierung von Informationen bietet. Zu diesen leistungsstarken Funktionen gehört die Gruppierung von Daten nach Zeitintervallen.

Dieser Artikel konzentriert sich auf die Verwendung von Pandas zum Gruppieren von Daten nach Zeitintervallen. Wir werden die Syntax, leicht verständliche Algorithmen, zwei verschiedene Ansätze und zwei vollständig ausführbare Codes aus der realen Welt, die auf diesen Ansätzen basieren, untersuchen.

Grammatik

Die Methode, auf die wir uns konzentrieren werden, ist die Funktion groupby() von Pandas, insbesondere deren Resampling-Methode. Die Syntax lautet wie folgt:

df.groupby(pd.Grouper(key='date', freq='T')).sum()

In der Grammatik:

  • df − Ihr DataFrame.

  • groupby(pd.Grouper()) – Funktion zum Gruppieren von Daten.

  • key − Die Spalte, nach der Sie gruppieren möchten. Hier ist es die Spalte „Datum“.

  • freq – Häufigkeit des Zeitintervalls. („T“ steht für Minuten, „H“ steht für Stunden, „D“ steht für Tage usw.)

  • sum() – Aggregationsfunktion.

Algorithmus

Hier ist ein Schritt-für-Schritt-Algorithmus zum Gruppieren von Daten nach Zeitintervallen -

  • Importieren Sie die erforderliche Bibliothek, nämlich Pandas.

  • Laden oder erstellen Sie Ihren DataFrame.

  • 25edfb22a4f469ecb59f1190150159c6e388a4556c0f65e1904146cc1a846beeKonvertieren Sie die Datumsspalte in ein Datetime-Objekt, sofern sie noch nicht konvertiert wurde. 94b3e26ee717c64999d7867364b1b4a3bed06894275b65c1ab86501b08a632eb
  • Verwenden Sie pd.Grouper, um die Funktion „groupby()“ mit der gewünschten Häufigkeit auf die Datumsspalte anzuwenden.

  • Anwenden von Aggregatfunktionen wie sum(), mean()

  • Ergebnisse drucken oder speichern.

Methode

Wir werden zwei verschiedene Ansätze betrachten −

Methode 1: Gruppieren Sie nach täglicher Häufigkeit

In diesem Beispiel erstellen wir einen DataFrame, der einen Bereich von Daten und Werten enthält. Anschließend haben wir die Daten nach Tageshäufigkeit gruppiert und die Tageswerte summiert.

Beispiel

# Import pandas
import pandas as pd

# Create a dataframe
df = pd.DataFrame({
   'date': pd.date_range(start='1/1/2022', periods=100, freq='H'),
   'value': range(100)
})

# Convert 'date' to datetime object, if not already
df['date'] = pd.to_datetime(df['date'])

# Group by daily frequency
daily_df = df.groupby(pd.Grouper(key='date', freq='D')).sum()

print(daily_df)

Ausgabe

            value
date             
2022-01-01    276
2022-01-02    852
2022-01-03   1428
2022-01-04   2004
2022-01-05    390

Anleitung

Die Einführung der Pandas-Bibliothek ist eine absolute Voraussetzung für jede Datenmanipulationsaufgabe und das Wichtigste, was wir in diesem Code wirklich tun werden. Die Verwendung der pd.DataFrame()-Strategie ist ein nachfolgender Schritt beim Aufbau eines DataFrame. Die Teile „Datum“ und „Wert“ bilden diesen Datenrahmen. Mit der Funktion pd.date_range() wird in der Spalte „Datum“ ein Bereich stündlicher Zeitstempel erstellt, während der Teil „Wert“ nur ganzzahlige Bereiche enthält. Die Spalte „Datum“ ist das Ergebnis dieser Interaktion.

Obwohl unsere Datumsspalte derzeit Datetime-Objekte unterschiedlich behandelt, verwenden wir nach und nach die Funktion pd.to_datetime(), um sicherzustellen, dass sie geändert wird. Dieser Schritt ist von entscheidender Bedeutung, da der Fortschritt der Erfassungsaktivität davon abhängt, ob das Segment über den Informationstyp „Datetime-Objekt“ verfügt.

Um die Daten danach nach täglicher ('D') Häufigkeit zu gruppieren, verwenden wir die Funktion groupby() in Kombination mit der Funktion pd.Grouper(). Nach der Gruppierung verwenden wir die Funktion sum(), um alle zum selben Tag gehörenden „Wert“-Elemente zu einer einzigen Summe zusammenzufassen.

Abschließend wird der gruppierte DataFrame ausgeschrieben, der die Gesamtwerte der einzelnen Tage anzeigt.

Methode 2: Gruppieren Sie nach benutzerdefinierter Häufigkeit, z. B. 15-Minuten-Intervallen

Beispiel

# Import pandas
import pandas as pd

# Create a dataframe
df = pd.DataFrame({
   'date': pd.date_range(start='1/1/2022', periods=100, freq='T'),
   'value': range(100)
})

# Convert 'date' to datetime object, if not already
df['date'] = pd.to_datetime(df['date'])

# Group by 15-minute frequency
custom_df = df.groupby(pd.Grouper(key='date', freq='15T')).sum()

print(custom_df)

Ausgabe

                     value
date                      
2022-01-01 00:00:00    105
2022-01-01 00:15:00    330
2022-01-01 00:30:00    555
2022-01-01 00:45:00    780
2022-01-01 01:00:00   1005
2022-01-01 01:15:00   1230
2022-01-01 01:30:00    945

Anleitung

Die nächste Technik beginnt mit einem Import der Pandas-Bibliothek ähnlich der ersten und erstellt dann einen DataFrame. Dieser DataFrame ist derselbe wie der im vorherigen Modell; der einzige Unterschied besteht darin, dass die Spalte „Datum“ jetzt den Zeitstempel in Minuten enthält.

Die Spalte „Datum“ sollte ein Datum/Uhrzeit-Objekt sein, damit die Erfassungsaktivität ordnungsgemäß funktioniert, und die Funktion pd.to_datetime() stellt sicher, dass dies geschieht.

In diesem Abschnitt verwenden wir die Funktion pd.Grouper() innerhalb der Methode groupby(), um Gruppierungsvorgänge mit einer dedizierten Häufigkeit von 15 Minuten („15T“) durchzuführen. Um die „Wert“-Einträge für jedes 15-Minuten-Intervall zu aggregieren, verwenden wir die Funktion sum(), die gleiche Methode wie im ersten Ansatz.

Vervollständigen Sie den Code, indem Sie einen neuen gruppierten DataFrame anzeigen, der die Summe der Spalte „Wert“ für jedes 15-Minuten-Intervall zeigt.

Fazit

Zu den leistungsstarken Funktionen von

Pandas gehören verschiedene Datenoperationen, darunter die Gruppierung von Daten nach Zeitintervallen. Durch die Verwendung der Funktion „groupby()“ in Verbindung mit pd.Grouper können wir Daten effektiv basierend auf täglichen Häufigkeiten oder benutzerdefinierten Häufigkeiten segmentieren und so eine effiziente und flexible Datenanalyse ermöglichen.

Die Möglichkeit, Daten nach Zeitintervallen zu gruppieren, ermöglicht es Analysten und Unternehmen, aussagekräftige Erkenntnisse aus Daten zu gewinnen. Ob es darum geht, den Gesamtumsatz pro Tag zu berechnen, die Durchschnittstemperatur pro Stunde zu ermitteln oder Website-Zugriffe alle 15 Minuten zu zählen, die Gruppierung von Daten nach Zeitintervallen ermöglicht es uns, Trends, Muster und Trends in den Daten im Zeitverlauf besser zu verstehen.

Denken Sie daran, dass die Pandas-Bibliothek von Python ein leistungsstarkes Datenanalysetool ist. Wenn Sie lernen, wie Sie die Funktionen nutzen, beispielsweise die Groupby-Methode, können Sie ein effizienterer und kompetenterer Datenanalyst oder Datenwissenschaftler werden.

Das obige ist der detaillierte Inhalt vonWie gruppiere ich Daten nach Zeitintervall in Python Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen