Verwenden mehrerer Masken basierend auf der IDPython

Python-Programme
Anonymous
 Verwenden mehrerer Masken basierend auf der ID

Post by Anonymous »

Ich habe einen DataFrame DF , der aus zwei Spalten besteht: eine ID und ein Datum . Die ID ist eine Nummer von 1-3 & nicht eindeutig; Das Datum ist ein DateTime -Objekt.

Code: Select all

id, date
1, 2020-5-11
1, 2019-3-2
2, 2018-7-29
3, 2017-2-21
3, 2017-2-23
Es gibt auch eine entsprechende Liste, die die ID mit einem verknüpften Start- und Enddatum enthält:

Code: Select all

id, startdate, enddate
1, 2015-1-1, 2020-1-1
2, 2019-2-1, 2020-2-31
3, 2017-2-1, 2020-2-31
Ich möchte df filtern, um alle Zeilen auszuschließen, wo für jede ID das Datum im Bereich des startdate und enddate nach oben angegeben wird. Aber ich weiß nicht, wie man sie alle gleichzeitig macht. < /p>

Code: Select all

for each, startdate, enddate in ids:
mask = (df['date'].dt.date >= startdate) & (df['date'].dt.date 
Die gewünschte Ausgabe für das Dummy -Beispiel wäre ein Datenrahmen, der das folgende (d. H. Mit Ausnahme aller Zeilen, für die das Datum der für jede ID spezifischen Datumsspezifikum ist) < /p>
enthält. < /p>
id, date
1, 2019-3-2
3, 2017-2-21
3, 2017-2-23

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post