Я не думаю, что вам нужно groupby
- вы просто хотите указать кластер как значение x, а данные как y:
sns.swarmplot(data=df, x="Cluster", y="Data")
Дает вам:
![swarm plot in seaborn](https://i.stack.imgur.com/Npro1.png)
Однако, если у вас есть еще одна категория, которую вы хотите закрасить, например,
df = pd.DataFrame({"Data":[random.random() for _ in range(100)],
"Cluster":[random.randint(0,10) for _ in range(100)],
"Category": [random.choice(("A", "B")) for _ in range(100)]})
Затем вы можете использовать аргумент hue
вот так:
sns.swarmplot(data=df, x="Cluster", y="Data", hue="Category")
и получим:
![swarm plot with categories](https://i.stack.imgur.com/kc6h8.png)