У вас есть 2 варианта:
Вы можете указать пандам добавлять данные при записи в файл CSV.
data = pd.read_html(url, attrs = {'class': 'ReportRaceDogFormDetails'} )
for datas in data:
datas.to_csv("new.csv", header=False, index=False, mode='a')
Объедините все таблицы в один DataFrame, а затем запишите это в файл CSV.
data = pd.read_html(url, attrs = {'class': 'ReportRaceDogFormDetails'} )
df = pd.concat(data, ignore_index=True)
df.to_csv("new.csv", header=False, index=False)
Редактировать
Чтобы по-прежнему разделять кадры данных в CSV-файле, нам нужно придерживаться варианта № 1, но с некоторыми добавлениями
data = pd.read_html(url, attrs = {'class': 'ReportRaceDogFormDetails'} )
with open('new.csv', 'a') as csv_stream:
for datas in data:
datas.to_csv(csv_stream, header=False, index=False)
csv_stream.write('\n')