Ich habe eine Datenmenge, die Mitarbeiter und Zeitstempel auf denen sie bestimmte Aktionen abgeschlossen sind. Es ist in drei Spalten unterteilt: Mitarbeiter, Datum, Stunde.Durchführen eines Excel-like Countifs in Pandas
Ich möchte die Anzahl der Mitarbeiter, die jede Stunde aktiv ist, zählen. In Excel würde ich dies tun, indem eine vierte Spalte EmpFactor
, in dem das Hinzufügen führe ich einen COUNTIFS
Betrieb:
=1/COUNTIFS(Name range;Name;Date range;Date;Hour range;Hour)
Ich kann anschließend die Anzahl der aktiven Mitarbeiter berechnen, indem ein SUMIF
auf der EmpFactor
Spalte durchgeführt wird.
Ich habe versucht, den folgenden Code die EmpFactor
Spalte Pandas zu komponieren:
for name,date,time in zip(df['Employee'],df['Date'],df['Time']):
df['EmpFactor'] = 1/(df[(df.Employee == name) and (df.Day == dag)
and (df.Time == tijd)].count())
Dies ist jedoch nicht funktioniert. Ich habe ausgiebig durch zahlreiche Themen zu SO gesucht, aber noch keine passende Antwort gefunden.
Es wird hilfreich sein, Beispieldaten und die erwartete Ausgabe zu haben. – Zero
Es ist vielleicht nicht elegant, aber es ist ein Start, wenn Sie einfach Ihr Array und + = zu einem Zähler für Matches iterieren, dann machen Sie Ihre Inversion. –
Danke! Ich habe den letzteren Ansatz gewählt, der zu funktionieren scheint. – TimH