Самый быстрый способ создать фрейм данных типа get_dummies из столбца с несколькими строками

У меня есть столбец 'col2', в котором есть список строк. Текущий код у меня слишком медленный, около 2000 уникальных строк (буквы в примере ниже) и 4000 строк. Заканчивается до 2000 столбцов и 4000 строк.

In [268]: df.head()
Out[268]:
    col1    col2
0   6       A,B
1   15      C,G,A
2   25      B

Есть ли быстрый способ сделать это в формате получить манекены? Где каждая строка имеет свой собственный столбец, и в каждом столбце есть 0 или 1, если в этой строке есть эта строка в col2.

In [268]: def get_list(df):
d = []
for row in df.col2:
    row_list = row.split(',')
    for string in row_list:
        if string not in d:
            d.append(string)
return d

df_list = get_list(df)

def make_cols(df, lst):
    for string in lst:
        df[string] = 0
    return df

df = make_cols(df, df_list)


for idx in range(0, len(df['col2'])):
    row_list = df['col2'].iloc[idx].split(',')
    for string in row_list:
        df[string].iloc[idx]+= 1

Out[113]:
col1    col2    A   B   C   G
0   6   A,B     1   1   0   0
1   15  C,G,A   1   0   1   1
2   25  B       0   1   0   0

Это мой текущий код, но он слишком медленный.

Спасибо вам любая помощь!

Ответы на вопрос(1)

Ваш ответ на вопрос