Ich habe eine pandas.DataFrame
enthält mehrere Rechnungen von mehreren Kunden. Ich möchte eine elegante Möglichkeit finden, die Zeit zwischen 2 Rechnungen je nach Kunde zu berechnen.Wie bekomme ich den Zeitunterschied zwischen Index, mehrere Rechnungen - Pandas
Mein Datenrahmen sieht wie folgt aus (Index ist die Rechnungsnummer, die letzte Spalte ist das, was ich erwarte):
CustomerID InvoiceDate time between 2 orders
index
536365 17850.0 2010-12-01 08:26:00 0 minutes (or np.nat)
536366 17850.0 2010-12-01 08:28:00 2 minutes
536367 13047.0 2010-12-01 08:34:00 0 minutes (It's a new customer)
536369 13047.0 2010-12-01 08:35:00 1 minute
536371 13748.0 2010-12-01 09:00:00 0 minute (new customer)
536372 17850.0 2010-12-01 09:01:00 33 minutes (see line #2)
536373 17850.0 2010-12-01 09:02:00 1 minute
536374 15100.0 2010-12-01 09:09:00 0 minute
Dies ist, was ich bisher gefunden (aber offensichtlich funktioniert es nicht !)
df = df.sort_values(['CustomerID', 'InvoiceDate']) #To order first according
df = df.set_index('index', drop = True)
for CustomerID in df['CustomerID'].unique():
index = df.set_index('CustomerID').index.get_loc(CustomerID)
df['Ordersep'].iloc[index] = df['InvoiceDate'].iloc[index].diff()
Irgendeine Idee, mir zu helfen?
Bingo! Sobald Sie die Lösung sehen, scheint es immer offensichtlich. –