GOOGLE ADS

Freitag, 22. April 2022

Bedingte Aggregation von Zeilen in Polaren

Ich habe einige Daten mit 2 Spalten im folgenden Format:

160 B
540 I
550 I
590 B
370 I

Und ich möchte die Zellen zusammenführen, die Bzusätzlich zu aufeinanderfolgenden I's (dh BI*) in Form von kommen:

160 540 550
590 370

Wie kann ich so etwas mit Polars erreichen?


Lösung des Problems

Wenn Sie mit der for-Schleife zufrieden sind, ist das alles. Ich habe es auch mit den Datenmanipulationsfunktionen von Polars versucht, aber ich habe es auf diese Weise nicht geschafft.

import polars as pl
df = pl.DataFrame({
"nums": [160, 540, 550, 590, 370],
"letters": ["B", "I", "I", "B", "I"]
})
out = []
for d, l in zip(df["nums"], df["letters"]):
if l == "B":
out.append([d])
elif l == "I":
out[-1].append(d)
else:
raise Exception("Unknown letter: " + l)
print(out)

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...