Вам необходимо преобразовать метки столбцов в допустимое имя столбца :
Имена столбцов
Имя столбца должно содержать только буквы (a-z, A-Z), цифры (0-9) или подчеркивания (_), и оно должно начинаться с буквы или подчеркивания. Максимальная длина имени столбца составляет 128 символов.
Вы можете сделать это, используя аргумент table_schema
to_gbq
:
df.to_gbq('db_name.table_name',
project_id='xyz',
if_exists='append',
verbose=False,
table_schema=[{'name': '_' + str(col).replace('-','_'), 'type': 'INT64'}
for col in df.columns]
)