ich zwei Pandas Dataframe-Objekte haben:Effizientes überprüfen, ob Wert in einem der angegebenen Bereiche ist
A
enthält'start'
und'finish'
SpaltenB
hat Spalte'date'
Das Ziel besteht darin, effizient eine boolesche Maske zu erstellen, die angibt, ob date
ist in [start, finish]
Intervall
Naive Iterieren zu viel Zeit, ich denke, es gibt eine Methode ist, dass schneller
UPDATE zu tun: A
und B
haben unterschiedliche Anzahl von Zeilen
UPDATE2: Beispiel:
A
| start | finish |
|------- |-------- |
| 1 | 3 |
| 50 | 83 |
| 30 | 42 |
B
| date |
|------- |
| 31 |
| 20 |
| 2.5 |
| 84 |
| 1000 |
Output:
| in_interval |
|------- |
| True |
| False |
| True |
| False |
| False |
PS Ich habe meine Daten im Datetime-Format, aber ich denke, dass die Lösung nicht von einem für Zahlen unterscheidet.
so fordern Sie für 'df [(df [ 'date']> df [‘ start ']) & (df [' date ']
EdChum
Möchten Sie es elementweise machen (dh Sie benötigen Datenrahmen gleicher Größe)? –
nein, das sind zwei separate Datenrahmen mit unterschiedlicher Anzahl von Zeilen, so dass dieser nicht funktioniert Ich denke – MaxPY