Похоже, вы пытаетесь построить группы в кадре данных.Так что-то вроде этого может работать:
import matplotlib.pyplot as plt
import pandas as pd
data = [['a', 1, 3],
['a', 2, 2],
['b', 2, 4],
['b', 1, 5],
['b', 3, 5],
]
df = pd.DataFrame(data, columns=['cat', 'x', 'y'])
for name, group in df.groupby('cat'):
plt.scatter(group.x, group.y, label=name)
plt.legend()
Это производит: