Вы можете перебирать строки и конвертировать каждую строку в список с плавающей точкой. Затем постройте эти списки:
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
df = pd.DataFrame(data={"sample 1": ['[6.1348741][5.98921666][5.98921666]',
'[6.06300458][6.14294531][6.14294531]',
'[6.18084289][6.33433549 8.36140445 8.8569102 ][6.33433549 8.36140445 8.8569102 ]',
'[6.20022251][2.99138873 6.19556828 8.36455137][2.99138873 6.19556828 8.36455137]',
'[6.1560241][6.30790417][6.30790417]',
'[6.17638675][6.34667509 8.74861151][6.34667509 8.74861151]']},
index=['var A', 'var B', 'var C', 'var D', 'var E', 'var F'])
for idx, val in df.iterrows():
ys = [float(v) for v in str(val[0]).replace('[', ' ').replace(']', ' ').split()]
plt.scatter(np.repeat(idx, len(ys)), ys, c='crimson')
plt.show()