I think need assign back:
df = pd.DataFrame({'amount':['5,000.00', '1,00,000.234']})
df['amount'] = df['amount'].replace(',','', regex=True).astype('float64')
print (df)
amount
0 5000.000
1 100000.234
If does not work check if some bad values:
df = pd.DataFrame({'amount':['5,000.00', '1,00,000.234', 'a']})
print (df)
amount
0 5,000.00
1 1,00,000.234
2 a
print (df.loc[pd.to_numeric(df['amount'].replace(',','', regex=True), errors='coerce').isnull(), 'amount'])
2 a
Name: amount, dtype: object
Then is possible convert bad values to NaNs:
df = pd.DataFrame({'amount':['5,000.00', '1,00,000.234', 'a']})
print (df)
amount
0 5,000.00
1 1,00,000.234
2 a
df['amount'] = pd.to_numeric(df['amount'].replace(',','', regex=True), errors='coerce', downcast='float')
print (df)
amount
0 5000.000
1 100000.234
2 NaN
If use pd.read_csv for DataFrame add parameter thousands=',':
df = pd.read_csv(file, thousands=',')