如其他问题所述,您应literal_eval
在此处使用:
from ast import literal_eval
df['col2'] = df['col2'].apply(literal_eval)
实际上:
In [11]: df = pd.DataFrame([[120, '[\'abc\',\'def\']'], [130, '[\'ghi\',\'klm\']']], columns=['A', 'B'])
In [12]: df
Out[12]:
A B
0 120 ['abc','def']
1 130 ['ghi','klm']
In [13]: df.loc[0, 'B'] # a string
Out[13]: "['abc','def']"
In [14]: df.B = df.B.apply(literal_eval)
In [15]: df.loc[0, 'B'] # Now it's a list
Out[15]: ['abc', 'def']