我有一个DataFrame
,有1mln行和两列Type
和Name
,它们的值是一个具有非唯一值的列表.Type
和Name
列具有相同数量的元素,因为它们形成一对(Type
Name
).我想添加到我的DataFrame
列中,这些列的名称是来自Type
列的唯一类型,值是来自Name
列的相应值的列表.下面是当前代码的一个简短示例.当行数为1mln时,它工作得很慢,所以我正在寻找一个更快的解决方案.
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]