Используйте strip
с split
и, если необходимо, приведите к плавающим числам, добавьте префикс последним на add_prefix
:
df = pd.DataFrame({'vals':["'[12.1, 15.0]'","'[12.1, 15.0]'"]})
df = (df['vals'].str.strip("'[]")
.str.split(', ', expand=True)
.astype(float)
.add_prefix('val'))
Если нет пропущенных значений и важна производительность:
df = pd.DataFrame([x.strip("'[]").split(', ') for x in df['vals']],
columns = ['val1', 'val2']).astype(float)