Ответ 1
Вы можете написать простую функцию очистки, чтобы сделать ее списком (предполагая, что это не список запятых, и вы не можете просто использовать ast.literal_eval
):
def clean_string_to_list(s):
return [c for c in s if c not in '[,]'] # you might need to catch errors
df['data'] = df['data'].apply(clean_string_to_list)
Итерация по строкам кажется разумным выбором:
In [11]: pd.DataFrame([(row['COL'], d)
for d in row['data']
for _, row in df.iterrows()],
columns=df.columns)
Out[11]:
COL data
0 line1 A
1 line1 B
2 line1 C
Боюсь, я не думаю, что pandas специально предназначается для такого рода манипуляций.