2016-06-20 19 views
1

Ich habe eine Pandas Datenrahmen die like thisPython Pandas - Iterieren innerhalb GROUPBY zu Zeitdifferenzen

Der Kunde sucht finden Nummer ist einzigartig für jeden Kunden, sondern wiederholt sich, wenn die Kundenbesuche wieder. Ich möchte die Kundennummer gruppieren. Dann möchte ich in jedem groupby Objekt die Dauer zwischen den Besuchen herausfinden.

Also, ich es so ..

df['Date'] = pd.to_datetime(df['Date'], format='%d %b %y') 
grouped = df.groupby('Customer no') 

Meine Frage ist, wie kann ich über die gruppierten Zeilen durchlaufen und die Zeit herauszufinden (in Tagen) zwischen zukünftigen Besuch.

Antwort

1

Ich glaube, Sie brauchen groupby mit diff:

print (df.groupby('Customer no')['Date'].diff()) 
13  NaT 
22 0 days 
26 0 days 
Name: Date, dtype: timedelta64[ns] 

#if need convert days to numeric 
print (df.groupby('Customer no')['Date'].diff()/np.timedelta64(1, 'D')) 
13 NaN 
22 0.0 
26 0.0 
Name: Date, dtype: float64 

Frequency conversion.