in Pandas Ich bin auf der Suche nach einem Wert in einer Spalte "B" in Abhängigkeit von den booleschen Werten aus einer anderen Spalte "A" hinzuzufügen. Also, wenn 'A' wahr ist, dann fange an zu zählen (d. H. Addiere eine Eins jeder neuen Zeile), solange 'A' falsch ist. Wenn 'A' ist True zurückgesetzt und starten Sie erneut zu zählen. Ich habe das mit einer "for" -Schleife gemacht, aber das ist sehr zeitaufwendig. Ich frage mich, ob es keine zeiteffiziente Lösung mehr gibt?Hinzufügen einer Zählung zu früheren Zelle Wert in Pandas
das Ergebnis sollte wie folgt aussehen:
Date A B
01.2010 False 0
02.2010 True 1
03.2010 False 2
04.2010 False 3
05.2010 True 1
06.2010 False 2
Ich teste Timing von beiden Lösung und zuerst Ihre Lösung hat unterschiedliche Ausgabe - erste Reihe hat '1' in Ihrer Lösung, nicht' 0' in Spalte 'B'. Und wenn check timings mit 'len (df) = 7000 ':'% Zeit (al (df1)) 100 Schleifen, beste von 3: 3,75 ms pro Schleife' vs '% Zeit (jez (df)) 100 Schleifen, beste von 3: 2,29 ms pro Schleife. Zuletzt haben Sie 2 Punkte für die Annahme verloren. Aber es liegt an Ihnen, wenn Sie denken, dass es besser ist, Ihre Lösung zu akzeptieren. – jezrael
Und wenn Bedarfspunkte, kein Problem. ;) – jezrael
@jezrael, vielen dank. Aus Excel/vba kommend, fand ich meine präsentierte Lösung intuitiver und erfüllte die Aufgabe im wirklichen Leben. Nichtsdestoweniger ist Ihre Lösung pandaesk. Ich muss noch den Unterschied von cumcount() und cumsum() studieren. –