I found a different way to achieve the desired result:
api_key = open('quandlapikey.txt', 'r').read() def data_extract(code, column_name): data = quandl.get(code, authtoken=api_key, start_date='2000-01-01', collapse='monthly',) data['Y/Y, (%)'] = data['Value'].pct_change(12)*100 data.rename(columns={'Value': column_name}, inplace=True) return data m2 = data_extract('FRED/M2','M1') m1 = data_extract('FRED/M1','M1') mb = data_extract('FRED/BOGMBASEW', 'Monetary Base') df_merged = [mb,m1,m2] df = reduce(lambda left,right: pd.merge(left,right,on='Date', how='outer'), df_merged).fillna('-') conn = sqlite3.connect('Database.db') c = conn.cursor() def data_entry(): df.to_sql('US Money Supply', conn, if_exists='replace') conn.commit() c.close() conn.close() data_entry()Here I get no errors and the output I wanted.