Im folgenden Beispiel möchte ich zuerst nach UID und dann nach TSTAMP für jede TID sortieren.Gruppendaten basierend auf dem Spaltennamen pandas
In diesem Zusammenhang ist hier ein minimales Arbeitsbeispiel I erzeugt:
df = pd.read_csv(dataset_path, names = ['TID','UID','TSTAMP'], delimiter=';')
df = df.sort_values(by=['TID'], ascending=[True])
print df
#print df.groupby('UID').describe()
Dies ist jedoch nicht groupby('UID')
die Möglichkeit, es sortieren möge.
TID UID TSTAMP
22267 77 (!?} 1494417075666
9095 77 U|X^ 1494415815098
15266 77 ~Mb{ 1494416401082
15263 77 ~Mb{ 1494416401061
15255 77 Qh9~ 1494416398799
15252 77 Qh9~ 1494416398786
15239 77 xF#u 1494416397542
15236 77 xF#u 1494416397540
9105 77 U|X^ 1494415815197
So etwas wie das Endergebnis:
TID UID TSTAMP
22267 77 (!?} 1494417075666
15263 77 ~Mb{ 1494416401061
15266 77 ~Mb{ 1494416401082
15252 77 Qh9~ 1494416398786
15255 77 Qh9~ 1494416398799
9095 77 U|X^ 1494415815098
9105 77 U|X^ 1494415815197
15236 77 xF#u 1494416397540
15239 77 xF#u 1494416397542
Ich pandas
ein Lernen .. jede Hilfe wird geschätzt.
Dank @jezrael, hier ist die endgültige Lösung
df = pd.read_csv(dataset_path, names = ['TID','UID','TSTAMP'], delimiter=';')
df = df.sort_values(['TID', 'TSTAMP', 'UID'], ascending=[True, False, True])
d = {'min':'TSTAMP-INIT','max':'TSTAMP-FIN'}
df = df.groupby(['UID','TID'])['TSTAMP'].agg([min, max]).reset_index().rename(columns=d)
for i, row in df.T.iteritems():
print row
Ich gab ein bisschen mehr Details darüber, wie das Ergebnis aussehen sollte. Describe() gibt mir viele Details, die für mich nicht notwendig sind – tandem
Ich bin mir nicht sicher über die Sortierung in der ersten Spalte, ob 'aufsteigend = [Wahr, Falsch, Wahr]' oder 'aufsteigend = [Falsch, Falsch, Wahr]'. – jezrael
Gibt es eine Möglichkeit, das erste TSTAMP für eine bestimmte UID und das letzte TSTAMP für die gleiche UID zu erhalten? Zum Beispiel für '~ Mb {': '1494416401082' und' 1494416401061' – tandem