Datenrahmen mit Listenelementen transponierenPython

Python-Programme
Guest
 Datenrahmen mit Listenelementen transponieren

Post by Guest »

Ich habe einen Datenrahmen wie

Code: Select all

┌─────┬────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
│ rul ┆ 647833 ┆ 64783 ┆ 64783 ┆ 64783 ┆ 64720 ┆ 64783 ┆ 64783 ┆ 64783 ┆ 64682 ┆ … ┆ 64681 ┆ 64681 ┆ 64681 ┆ 64719 ┆ 64681 ┆ 64681 ┆ 64682 ┆ 64682 ┆ 64682 ┆ 64682 │
│ e   ┆ ---    ┆ 0     ┆ 4     ┆ 1     ┆ 1     ┆ 2     ┆ 5     ┆ 6     ┆ 8     ┆   ┆ 7     ┆ 2     ┆ 3     ┆ 8     ┆ 5     ┆ 6     ┆ 1     ┆ 3     ┆ 2     ┆ 4     │
│ --- ┆ list[s ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   │
│ str ┆ tr]    ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆   ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ │
│     ┆        ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆   ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  │
╞═════╪════════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╡
│ cs_ ┆ ["Info ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Cri ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ … ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Cri ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf │
│ rul ┆ ",     ┆ o",   ┆ o",   ┆ o",   ┆ tical ┆ o",   ┆ o",   ┆ o",   ┆ o",   ┆   ┆ o",   ┆ o",   ┆ o",   ┆ tical ┆ o",   ┆ o",   ┆ o",   ┆ o",   ┆ o",   ┆ o",   │
│ e_d ┆ "Ok"]  ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ ",    ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆   ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ ",    ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] │
│ ata ┆        ┆       ┆       ┆       ┆ "No   ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ "No   ┆       ┆       ┆       ┆       ┆       ┆       │
│ _ch ┆        ┆       ┆       ┆       ┆ data  ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ data  ┆       ┆       ┆       ┆       ┆       ┆       │
│ eck ┆        ┆       ┆       ┆       ┆ avail ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ avail ┆       ┆       ┆       ┆       ┆       ┆       │
│     ┆        ┆       ┆       ┆       ┆ iab…  ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ iab…  ┆       ┆       ┆       ┆       ┆       ┆       │
└─────┴────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
Ich versuche einfach, eine Transponierung durchzuführen, sodass die Regeln Spalten und die aktuellen Spalten Zeilen sind.
Da die Polartransposition mit Listentypen scheinbar nicht funktioniert, versuche ich es um die Listen in durch Kommas getrennte Zeichenfolgen wie
umzuwandeln

Code: Select all

df = site_df.with_columns([pl.all().exclude("cs_rule_data_check").arr.join(",")])
aber ich bekomme immer wieder

Code: Select all

polars.exceptions.SchemaError: invalid series dtype: expected `FixedSizeList`, got `list[str]`
Ein Beispiel aus der Antwort unten ist

Code: Select all

df = pl.DataFrame({
"rule": "cs_rule_data_check",
"647833": [["Info","Ok"]],
"647201": [["Critical"]]
})

print(df)

#df = df.transpose(include_header=True, header_name="variable", column_names="rule")
df.unpivot(index="rule").pivot(on="rule", index="variable")
Sowohl Transpose als auch Unpivot geben den Fehler.

Code: Select all

pyo3_runtime.PanicException: called `Result::unwrap()` on an `Err` value: InvalidOperation(ErrString("cannot cast List type (inner: 'String', to: 'String')"))
Ich verwende die neuesten Polars
Wie kann ich meinen Datenrahmen transponieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post