Ich habe zwei Spalten (Schlüssel, Werte), die ich mit Pandas drehen möchte.
Nach dem Import sieht mein Datensatz so aus:
Arbeitszentrum | Schlüssel | Wert | |
---|---|---|---|
0 | k1 | a, | ein, |
ein | k2 | a, b, | 3.5, |
2 | k1 | c, ein, | 7.5.5, |
Lösung des Problems
Zuerst können Sie split
auf key
und value
Spalten und explode
sie auf Zeilen
df_ = (df
.set_index(['Work Center'])
.apply(pd.Series.explode).reset_index()
.replace('', pd.NA)
.dropna(subset=['key'])
)
Work Center key value
0 k1 a 1
2 k2 a 3
3 k2 b 5
5 k1 c 7.5
6 k1 a 5
Verwenden pivot_table
Sie dann zum Schwenken
df_['value'] = pd.to_numeric(df_['value'])
df_ = (df_
.pivot_table(index='Work Center', columns='key', values='value', aggfunc='sum', fill_value=0)
.add_prefix('key.')
)
print(df_)
key key.a key.b key.c
Work Center
k1 6 0 7.5
k2 3 5 0.0
Keine Kommentare:
Kommentar veröffentlichen