Ich habe einen Datenrahmen ‚df‘, die wie folgt aussieht:Python Pandas Dataframe GroupBy basiert Größe unter der Bedingung
id date1 date2
1 11/1/2016 11/1/2016
1 11/1/2016 11/2/2016
1 11/1/2016 11/1/2016
1 11/1/2016 11/2/2016
1 11/2/2016 11/2/2016
2 11/1/2016 11/1/2016
2 11/1/2016 11/2/2016
2 11/1/2016 11/1/2016
2 11/2/2016 11/2/2016
2 11/2/2016 11/2/2016
Was würde ich tun möchte, ist die ID GROUPBY, dann für jede ID, die Größe, wo Datum1 = Datum2. Das Ergebnis sollte wie folgt aussehen:
id samedate count
1 11/1/2016 2
1 11/2/2016 1
2 11/1/2016 2
2 11/2/2016 2
ich dieses versucht haben:
gb=df.groupby(id').apply(lambda x: x[x.date1== x.date2]['date1'].size())
Und diesen Fehler:
TypeError: 'int' object is not callable
Sie sicherlich jede Instanz markieren könnte, wo die date1 und date2 gleich sind , dann zähle diese Flags für jede ID von jedem samedate, aber ich muss glauben, dass es eine groupby-Option dafür gibt.
Danke für die Timings. Dies ist ein besserer Weg, es zu tun. – Zero
Vielen Dank für die Antwort, erste Idee war sehr ähnlich wie Ihre Antwort. – jezrael
Danke. Ausgezeichnet! – clg4