Otimize a divisão da coluna de listas em colunas separadas
Eu estive procurando dividir uma coluna composta de listas em colunas separadas. Eu tenho uma solução, mas é muito lenta.
Eu tenho o seguinte panda dataframe
|basket |
|['two apple','A banana'] |
|['Red pear','A banana'] |
|['two apple','A banana','Red pear']|
Que eu gostaria de transformar no seguinte quadro de dados.
|basket |two apple|A banana|Red pear|
|['two apple','A banana'] |1 |1 |0 |
|['Red pear','A banana'] |0 |1 |1 |
|['two apple','A banana','Red pear']|1 |1 |1 |
Eu tenho o seguinte código, depois de já criar as colunas que eu precisava:
for index,row in enumerate(df.basket):
if index>0 and index%10000==0:
print(index/len(df.baskets),' percent complete')
for n,col in enumerate(df.columns):
for pattern in row:
if col == pattern:
df[col,index]=1
break
Com o número de linhas que tenho, isso leva uma eternidade e eu esperava encontrar uma maneira mais eficiente de preencher as colunas, mesmo que eu precise criá-las a partir da coluna de listas.