So markieren Sie Werte pro Spalte in PolarsPython

Python-Programme
Anonymous
 So markieren Sie Werte pro Spalte in Polars

Post by Anonymous »

Ich habe einen Polars-DataFrame und möchte die obersten drei Werte für jede Spalte mithilfe der Stil-- und Loc-Funktionen in Polars hervorheben. Ich kann dies für einzelne Spalten erreichen, aber mein aktueller Ansatz beinhaltet viele Wiederholungen, die nicht auf viele Variablen skalierbar sind.

Code: Select all

import polars as pl
import polars.selectors as cs
from great_tables import loc, style

df = pl.DataFrame({
"id": [1, 2, 3, 4, 5],
"variable1": [15, 25, 5, 10, 20],
"variable2": [40, 30, 50, 10, 20],
"variable3": [400, 100, 300, 200, 500]
})

top3_var1 = pl.col("variable1").is_in(pl.col("variable1").top_k(3))
top3_var2 = pl.col("variable2").is_in(pl.col("variable2").top_k(3))

(
df
.style
.tab_style(
style.text(weight="bold"),
loc.body("variable1", top3_var1)
)
.tab_style(
style.text(weight="bold"),
loc.body("variable2", top3_var2)
)
)
Das funktioniert, ist aber für viele Spalten nicht skalierbar, da ich top3_var für jede Spalte manuell definieren muss.
Ich habe versucht, pl.all().top_k(3) zu verwenden, um den Prozess automatisierter zu gestalten:

Code: Select all

(
df
.style
.tab_style(
style.text(weight="bold",   ),
loc.body("variable1", top3_var1)
)
.tab_style(
style.text(weight="bold"),
loc.body("variable2", top3_var2)
)
)
Ich bin mir jedoch nicht sicher, wie ich die Methoden style und loc anwenden soll, um nur die obersten drei Werte in jeder Spalte einzeln hervorzuheben, ohne die gesamte Zeile zu beeinflussen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post