Anonymous
Wie kann ich eine Listenspalte mit einer anderen Listenspalte sortieren?
Post
by Anonymous » 03 Oct 2025, 00:05
Ich habe den folgenden DataFrame < /p>
Code: Select all
import polars as pl
data = {
"user": ["xxx", "yyy", "zzz"],
"list_1": [[1, 3, 5], [4, 9, 5], [4, 6, 1]],
"list_2": [[8, 3, 5], [3, 4, 5], [9, 3, 6]],
"list_3": [[6, 7, 8], [7, 8, 3], [4, 3, 2]],
"rank": [[1, 2, 3], [1, 3, 2], [2, 3, 1]]
}
df = pl.DataFrame(data)
< /code>
shape: (3, 5)
┌──────┬───────────┬───────────┬───────────┬───────────┐
│ user ┆ list_1 ┆ list_2 ┆ list_3 ┆ rank │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ list[i64] ┆ list[i64] ┆ list[i64] ┆ list[i64] │
╞══════╪═══════════╪═══════════╪═══════════╪═══════════╡
│ xxx ┆ [1, 3, 5] ┆ [8, 3, 5] ┆ [6, 7, 8] ┆ [1, 2, 3] │
│ yyy ┆ [4, 9, 5] ┆ [3, 4, 5] ┆ [7, 8, 3] ┆ [1, 3, 2] │
│ zzz ┆ [4, 6, 1] ┆ [9, 3, 6] ┆ [4, 3, 2] ┆ [2, 3, 1] │
└──────┴───────────┴───────────┴───────────┴───────────┘
< /code>
The column rank
wird aus dem Rang der Spalte list_1 abgeleitet, und
ich möchte list_1 , list_2 und list_3 mit der Rangspalte sortieren.
Code: Select all
shape: (3, 5)
┌──────┬───────────┬───────────┬───────────┬───────────┐
│ user ┆ list_1 ┆ list_2 ┆ list_3 ┆ rank │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ list[i64] ┆ list[i64] ┆ list[i64] ┆ list[i64] │
╞══════╪═══════════╪═══════════╪═══════════╪═══════════╡
│ xxx ┆ [1, 3, 5] ┆ [8, 3, 5] ┆ [6, 7, 8] ┆ [1, 2, 3] │
│ yyy ┆ [4, 5, 9] ┆ [3, 5, 4] ┆ [7, 3, 8] ┆ [1, 3, 2] │
│ zzz ┆ [1, 4, 6] ┆ [6, 9, 3] ┆ [2, 4, 3] ┆ [2, 3, 1] │
└──────┴───────────┴───────────┴───────────┴───────────┘
< /code>
I have tried various .list
Funktionen, aber ich denke, sie können keine Argumente nach Zeile aufnehmen.
Gibt es eine Funktion in Polaren, die dies tun können? Sehr geschätzt
1759442733
Anonymous
Ich habe den folgenden DataFrame < /p> [code]import polars as pl data = { "user": ["xxx", "yyy", "zzz"], "list_1": [[1, 3, 5], [4, 9, 5], [4, 6, 1]], "list_2": [[8, 3, 5], [3, 4, 5], [9, 3, 6]], "list_3": [[6, 7, 8], [7, 8, 3], [4, 3, 2]], "rank": [[1, 2, 3], [1, 3, 2], [2, 3, 1]] } df = pl.DataFrame(data) < /code> shape: (3, 5) ┌──────┬───────────┬───────────┬───────────┬───────────┐ │ user ┆ list_1 ┆ list_2 ┆ list_3 ┆ rank │ │ --- ┆ --- ┆ --- ┆ --- ┆ --- │ │ str ┆ list[i64] ┆ list[i64] ┆ list[i64] ┆ list[i64] │ ╞══════╪═══════════╪═══════════╪═══════════╪═══════════╡ │ xxx ┆ [1, 3, 5] ┆ [8, 3, 5] ┆ [6, 7, 8] ┆ [1, 2, 3] │ │ yyy ┆ [4, 9, 5] ┆ [3, 4, 5] ┆ [7, 8, 3] ┆ [1, 3, 2] │ │ zzz ┆ [4, 6, 1] ┆ [9, 3, 6] ┆ [4, 3, 2] ┆ [2, 3, 1] │ └──────┴───────────┴───────────┴───────────┴───────────┘ < /code> The column rank[/code] wird aus dem Rang der Spalte list_1 abgeleitet, und [url=viewtopic.php?t=30561]ich möchte[/url] list_1 , list_2 und list_3 mit der Rangspalte sortieren.[code]shape: (3, 5) ┌──────┬───────────┬───────────┬───────────┬───────────┐ │ user ┆ list_1 ┆ list_2 ┆ list_3 ┆ rank │ │ --- ┆ --- ┆ --- ┆ --- ┆ --- │ │ str ┆ list[i64] ┆ list[i64] ┆ list[i64] ┆ list[i64] │ ╞══════╪═══════════╪═══════════╪═══════════╪═══════════╡ │ xxx ┆ [1, 3, 5] ┆ [8, 3, 5] ┆ [6, 7, 8] ┆ [1, 2, 3] │ │ yyy ┆ [4, 5, 9] ┆ [3, 5, 4] ┆ [7, 3, 8] ┆ [1, 3, 2] │ │ zzz ┆ [1, 4, 6] ┆ [6, 9, 3] ┆ [2, 4, 3] ┆ [2, 3, 1] │ └──────┴───────────┴───────────┴───────────┴───────────┘ < /code> I have tried various .list[/code] Funktionen, aber ich denke, sie können keine Argumente nach Zeile aufnehmen. Gibt es eine Funktion in Polaren, die dies tun können? Sehr geschätzt