Verwenden mehrerer Masken basierend auf der ID
Posted: 05 Sep 2025, 01:38
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.
Es gibt auch eine entsprechende Liste, die die ID mit einem verknüpften Start- und Enddatum enthält:
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
id, date
1, 2020-5-11
1, 2019-3-2
2, 2018-7-29
3, 2017-2-21
3, 2017-2-23
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
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