total_rows is only set in to_gbq() if verbose = True. If verbose = False, it is reference before assignment.

Code Sample, a copy-pastable example if possible

data.to_gbq('ANYTABLE',project_id ='ANYPROJECT',verbose = False,if_exists = 'append')

'UnboundLocalError: local variable 'total_rows' referenced before assignment'

Expected Output

Expected output is a successful upload to GBQ.

output of pd.show_versions()

INSTALLED VERSIONS

commit: None python: 2.7.11.final.0 python-bits: 64 OS: Darwin OS-release: 15.5.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: en_US.UTF-8

pandas: 0.18.1 nose: 1.3.7 pip: 8.1.2 setuptools: 19.4 Cython: None numpy: 1.11.0 scipy: 0.17.1 statsmodels: 0.6.1 xarray: None IPython: 4.2.0 sphinx: 1.4.2 patsy: 0.4.1 dateutil: 2.5.3 pytz: 2016.4 blosc: None bottleneck: None tables: None numexpr: None matplotlib: 1.5.1 openpyxl: None xlrd: None xlwt: None xlsxwriter: None lxml: None bs4: None html5lib: None httplib2: 0.9.2 apiclient: 1.5.1 sqlalchemy: None pymysql: None psycopg2: None jinja2: 2.8 boto: None pandas_datareader: None

Comment From: jreback

this is fixed in master / soon released 0.19.0 by https://github.com/pydata/pandas/pull/13244