The line pd.to_numeric(read['Gross'], errors='coerce') is correct for converting a column with potentially non-numeric values to numeric values in pandas. However, when errors='coerce' is used, any non-numeric value in the column will be replaced with NaN.
for Example:
data = {'Gross': ['1234', '$4567', '789a', '12,345', None]}
read = pd.DataFrame(data)
read['Gross'] = read['Gross'].astype(str).str.replace(',', '').str.replace('$', '').replace('nan', '')
read['Gross'] = pd.to_numeric(read['Gross'], errors='coerce')
read['Gross'].fillna(0, inplace=True)