Hi @rpeter,
since the legend item of a trace is given by its name attribute, you can iterate through the traces to modify the names as below (as a rule of thumb, it helps to do print(fig) to see the structure of the figure and understand how to modify it).
import plotly.express as px
df = px.data.gapminder().query("year == 2007").query("continent == 'Europe'")
fig = px.scatter(df, x='gdpPercap', y='lifeExp', color='country')
for trace in fig.data:
trace.name = trace.name.split('=')[1]
fig.show()
That said, legend titles is something we want to add in plotly.py and when it’s implemented the name of the column will be the title, so by default you will not have the column name repeated in legend items. Please stay tuned for future developments :-).