Wie man die Einzigartigkeit durch Bedingung filtertPython

Python-Programme
Anonymous
 Wie man die Einzigartigkeit durch Bedingung filtert

Post by Anonymous »

Stellen Sie sich vor, ich habe einen Datensatz wie: < /p>

Code: Select all

data = {
"a": [1, 4, 2, 4, 7, 4],
"b": [4, 2, 3, 3, 0, 2],
"c": ["a", "b", "c", "d", "e", "f"],
}
und ich möchte nur die Zeilen behalten, für die a + b durch eine einzelne Kombination von A und B eindeutig beschrieben wird. Ich habe es geschafft, dies zu hacken: < /p>
df = (
pl.DataFrame(data)
.with_columns(sum_ab=pl.col("a") + pl.col("b"))
.group_by("sum_ab")
.agg(pl.col("a"), pl.col("b"), pl.col("c"))
.filter(
(pl.col("a").list.unique().list.len() == 1)
& (pl.col("b").list.unique().list.len() == 1)
)
.explode(["a", "b", "c"])
.select("a", "b", "c")
)

"""
shape: (2, 3)
┌─────┬─────┬─────┐
│ a ┆ b ┆ c │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str │
╞═════╪═════╪═════╡
│ 4 ┆ 2 ┆ b │
│ 4 ┆ 2 ┆ f │
└─────┴─────┴─────┘
"""
< /code>
Kann jemand einen besseren Weg vorschlagen, um dasselbe zu erreichen? Ich hatte ein bisschen Probleme, diese Logik herauszufinden, also stelle ich mir vor, dass es eine direktere/elegantere Art gibt, das gleiche Ergebnis zu erzielen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post