Pandas: so berechnen sie timedelta in monaten
Mit der folgenden Funktion können Sie ein Zeitdelta in Monaten zwischen zwei Spalten eines Pandas-DataFrames berechnen:
def month_diff(x, y): end = x. dt . to_period (' M '). view (dtype=' int64 ') start = y. dt . to_period (' M '). view (dtype=' int64 ') return end-start
Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.
Beispiel: Timedelta in Monaten in Pandas berechnen
Angenommen, wir haben den folgenden Pandas-DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' event ': ['A', 'B', 'C'], ' start_date ': ['20210101', '20210201', '20210401'], ' end_date ': ['20210608', '20210209', '20210801'] }) #convert start date and end date columns to datetime df[' start_date '] = pd. to_datetime (df[' start_date ']) df[' end_date '] = pd. to_datetime (df[' end_date ']) #view DataFrame print (df) event start_date end_date 0 A 2021-01-01 2021-06-08 1 B 2021-02-01 2021-02-09 2 C 2021-04-01 2021-08-01
Nehmen wir nun an, wir möchten das Zeitdelta (in Monaten) zwischen den Spalten start_date und end_date berechnen.
Dazu definieren wir zunächst die folgende Funktion:
#define function to calculate time delta in months between two columns def month_diff(x, y): end = x. dt . to_period (' M '). view (dtype=' int64 ') start = y. dt . to_period (' M '). view (dtype=' int64 ') return end-start
Als Nächstes verwenden wir diese Funktion, um das Zeitdelta in Monaten zwischen den Spalten start_date und end_date zu berechnen:
#calculate month difference between start date and end date columns
df[' month_difference '] = month_diff(df. end_date , df. start_date )
#view updated DataFrame
df
event start_date end_date month_difference
0 A 2021-01-01 2021-06-08 5
1 B 2021-02-01 2021-02-09 0
2 C 2021-04-01 2021-08-01 4
Die Spalte „Month_difference“ zeigt das Zeitdelta (in Monaten) zwischen den Spalten „start_date“ und „end_date“ an.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So konvertieren Sie Spalten in Pandas in DateTime
So konvertieren Sie DateTime in Pandas in Datum
So extrahieren Sie den Monat aus dem Datum in Pandas