Nr. 1 Sammlung von Pandas-Rezepten, die juckende Stellen erreichen können
Ich möchte ein Array / DataFrame verwalten, in dem "Kategoriename (Index)" und "Wert" ein Element als Zeichenfolge sind. Weisen wir einer Spalte einen Wert zu, deren Spaltenname jede Kategorie (Index) ist.
ID | Verdammt große Schnur |
---|---|
0 | A 0, B 1, C 2 |
1 | B 3, D 4 |
2 | A 5, C 6 |
3 | C 7, D 8 |
↑ Ich möchte diese ↑ verdammt große Zeichenkette ↓.
ID | A | B | C | D |
---|---|---|---|---|
0 | 0 | 1 | 2 | 0 |
1 | 0 | 3 | 0 | 4 |
2 | 5 | 0 | 6 | 0 |
3 | 0 | 0 | 7 | 8 |
Jede Kategorie ist bekannt. Wenn Sie es nicht wissen, erstellen Sie eine Liste mit Kategorien.
str_to_dataframe.py
import numpy as np
import pandas as pd
def str_to_dict(x):
dic = {'A' : 0, 'B' : 0, 'C' : 0, 'D' : 0}
for xx in x.split(","):
xxs = xx.split(" ")
dic[xxs[-2]] = int(xxs[-1])
return dic
temp = df["Verdammt große Schnur"].apply(lambda x : pd.Series(str_to_dataframe(x)))
df = pd.concat((df, temp), axis=1)
Das geht schnell!
Recommended Posts