Вам нужно regex=True
для замены подстрок, если оно опущено, панды попробуйте заменить значения отдельно ,
и, поскольку они не существуют, значения не заменяются:
df.columnname = df.columnnname.replace(',', '.', regex=True)
Проверить разницу - в столбце new2
заменяется только вторая ,
, потому что не подстроки:
df = pd.DataFrame({'columnnname':['0,40',',','10']})
df['new1'] = df.columnnname.replace(',', '.', regex=True)
df['new2'] = df.columnnname.replace(',', '.')
print (df)
columnnname new1 new2
0 0,40 0.40 0,40
1 , . .
2 10 10 10