Polaren ändern viele Spalten basierend auf dem Wert in einer anderen Spalte [Duplikat]Python

Python-Programme
Anonymous
 Polaren ändern viele Spalten basierend auf dem Wert in einer anderen Spalte [Duplikat]

Post by Anonymous »

Angenommen, ich habe einen DataFrame, der so aussieht:

Code: Select all

import polars as pl

df = pl.DataFrame({
"id": [1, 2, 3, 4, 5],
"feature_a": np.random.randint(0, 3, 5),
"feature_b": np.random.randint(0, 3, 5),
"label": [1, 0, 0, 1, 1],
})

┌─────┬───────────┬───────────┬───────┐
│ id  ┆ feature_a ┆ feature_b ┆ label │
│ --- ┆ ---       ┆ ---       ┆ ---   │
│ i64 ┆ i64       ┆ i64       ┆ i64   │
╞═════╪═══════════╪═══════════╪═══════╡
│ 1   ┆ 2         ┆ 0         ┆ 1     │
│ 2   ┆ 1         ┆ 1         ┆ 0     │
│ 3   ┆ 2         ┆ 2         ┆ 0     │
│ 4   ┆ 1         ┆ 0         ┆ 1     │
│ 5   ┆ 0         ┆ 0         ┆ 1     │
└─────┴───────────┴───────────┴───────┘
Ich möchte alle Feature-Spalten basierend auf dem Wert in der Label-Spalte ändern und so einen neuen DataFrame erstellen.

Code: Select all

┌─────┬───────────┬───────────┐
│ id  ┆ feature_a ┆ feature_b │
│ --- ┆ ---       ┆ ---       │
│ i64 ┆ i64       ┆ i64       │
╞═════╪═══════════╪═══════════╡
│ 1   ┆ 1         ┆ 1         │
│ 2   ┆ 0         ┆ 0         │
│ 3   ┆ 0         ┆ 0         │
│ 4   ┆ 1         ┆ 1         │
│ 5   ┆ 1         ┆ 1         │
└─────┴───────────┴───────────┘
Ich weiß, dass ich alle Feature-Spalten auswählen kann, indem ich Regex in der Spaltenauswahl verwende

Code: Select all

pl.col(r"^feature_.*$")
Und ich kann einen Wann/Dann-Ausdruck verwenden, um die Beschriftungsspalte auszuwerten

Code: Select all

pl.when(pl.col("label") == 1).then(1).otherwise(0)
Aber ich schaffe es scheinbar nicht, die beiden zusammenzufügen, um alle ausgewählten Spalten auf einen Schlag zu ändern. Es scheint so einfach, was habe ich übersehen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post