ich einen Datenrahmen, die Mitarbeiter Anwesenheits Geschichte und es sieht aus wie die folgenden Datensätze: von IDVerwenden Python Pandas oder R, organisieren Kalenderdaten
ID Sunday Monday Tuesday Wednesday Thursday Friday Saturday
1585 NA NA NA NA NA NA NA
1585 NA S S S S H NA
1585 NA H S S NA NA NA
1585 NA S S S NA NA NA
1597 NA S S NA S NA NA
1597 NA NA NA NA NA H NA
1597 NA H S S NA NA NA
1597 NA NA NA NA NA NA NA
In dem obigen Beispiel gibt es zwei Personen eindeutig identifiziert Die folgenden 7 Spalten sind Samstag bis Sonntag, die am 1. April 2017 beginnen. Es gibt drei Anwesenheitsverhalten: S
bedeutet kranker Urlaub, H
steht für Feiertage und NA
bedeutet, dass diese Person an diesem Tag arbeitet.
Das Interesse besteht darin, die Krankenstandabwesenheitsakten neu zu organisieren. Beispiel: Die Person 1585 beginnt am Montag, dem 10. April 2017, krankheitsbedingt und endet am Mittwoch, den 19. April 2017 und dauert 10 Tage. Beachten Sie, dass es während der 10 Tage zwei Feiertage gibt, die jedoch zu diesem Krankheitsurlaub gehören würden. Dann beginnt diese Person am Montag, den 24. April 2017, einen zweiten Krankenstand und endet am Mittwoch, dem 26. April.
Wir haben auch eine Aufzeichnung über die zweite Person mit ID 1597, beginnt wieder am 1. April 2017 (so für jede Person, die Anfangs- und Enddaten der Datensätze sind die gleichen). Diese Person hat drei Abwesenheitszauber: der erste beginnt am Montag, dem 3. April 2017 und endet am nächsten Tag, dem 4. April. Der zweite Zauber dauert nur einen Tag und beginnt und endet am 6. April. Der letzte Spruch beginnt am 18. April und endet am 19. April.
Die gewünschte Ausgabe wie folgt sein würde:
ID Begin_date End_date Duration
1585 2017-04-10 2017-04-19 10
1585 2017-04-24 2017-04-26 3
1597 2017-04-03 2017-04-04 2
1597 2017-04-06 2017-04-06 1
1597 2017-04-18 2017-04-19 2
Die Schwierigkeit, die ich konfrontiert ist, wie die aufeinander folgenden Krankendaten zu erkennen, und oben auf, dass während eines einzigen Kranken Zauber, ist es möglich, haben unterschiedliche Arten von Anwesenheitstypen (Ferien), aber Ferien werden immer noch als zu diesem einzelnen Krankenurlaubszauber gehörend betrachtet.
Ihre Eingabe nur Tage der Woche hat aber den gewünschten Ausgang hat bestimmte Daten. –
Ich würde in Betracht ziehen, Ihre Quelldaten so zu ändern, dass sie "Date, Status, employeeID" melden.Auf diese Weise können Sie einen Zeitreihen-Datenrahmen erstellen und anschließend eine kumulative Summe aufeinanderfolgender Tage erstellen, um die gewünschte Ausgabe zu erhalten. – Henry
Ja, der Datensatz ist auf einer täglichen Basis, für jeden einzelnen beginnen und enden die Datensätze immer am selben Datum. In dieser Stichprobe haben alle Personen am 1. April 2017 Aufzeichnungen und enden am 28. April. So können wir implizit die spezifischen Daten erkennen. – skyindeer