Hej, poniższy kod najszybciej opisuje co chce zrobic:
import pandas as pd
df = pd.DataFrame({"Type": [["1", "1", "2", "3"], ["2","3"]], "Name": [["A", "B", "C", "D"], ["E", "F"]]})
unique = list(set(df["Type"].explode()))
for t in unique:
df[t] = None
df[t] = df[t].astype('object')
for idx, row in df.iterrows():
for t in unique:
df.at[idx, t] = [row["Name"][i] for i in range(len(row["Name"])) if row["Type"][i] == t]
Czyli wartosci w kolumnach Type
i Name
sa listami o tej samej liczebnosci i tworza pary (Type, Name)
. W oparciu o te pary chce stworzyc nowe kolumny ktorych nazwy to typy z kolumny Type
a wartosci to lista wartosci z kolumny Name
dla danego typu. Niestety obecny kod dziala bardzo wolno. Jak moge go przyspieszyc?