Python 将文件加载到Informix数据库时从DataFrame.to_sql获取错误
在Informix数据库上使用Pandas Dataframe的Python 将文件加载到Informix数据库时从DataFrame.to_sql获取错误,python,pandas,dataframe,pyodbc,informix,Python,Pandas,Dataframe,Pyodbc,Informix,在Informix数据库上使用Pandas Dataframe的to_sql方法加载文件时出错。我能够连接到Informix数据库,并使用read\u sql\u query方法执行select查询,如下所示: df = pd.read_sql_query(query,con) 但是下面的代码抛出了一个错误,我不知道为什么: con = pyodbc.connect(constr, autocommit=True) file ='/home/webload/rajesh.txt' df =
to_sql
方法加载文件时出错。我能够连接到Informix数据库,并使用read\u sql\u query
方法执行select查询,如下所示:
df = pd.read_sql_query(query,con)
但是下面的代码抛出了一个错误,我不知道为什么:
con = pyodbc.connect(constr, autocommit=True)
file ='/home/webload/rajesh.txt'
df = pd.read_csv(file, sep="\t")
pd.DataFrame.to_sql(name='customers', schema='informix', con=con, if_exists='append', index=False )
这是我收到的错误:
Traceback (most recent call last):
File "connect1.py", line 42, in <module>
pd.DataFrame.to_sql(name='customers', schema='informix',con=con, if_exists='append', index=False )
TypeError: to_sql() missing 1 required positional argument: 'self'
回溯(最近一次呼叫最后一次):
文件“connect1.py”,第42行,在
to_sql(name='customers',schema='informix',con=con,如果_exists='append',index=False)
TypeError:to_sql()缺少1个必需的位置参数:“self”
to_sql方法旨在对现有的DataFrame
对象调用,因此pd.DataFrame.to_sql
毫无意义。您确实想执行df.to_sql(…)
以便pandas知道您要上载哪个数据帧。@gordthompson现在收到此错误:我的数据库是Informix“error”回溯(最近一次调用):文件“/home/webload/anaconda3/lib/python3.7/site packages/pandas/io/sql.py”,第1431行,在execute cur.execute(*args)中pyodbc.ProgrammingError:('42S02','[42S02][Informix][Informix ODBC Driver][Informix]指定的表(sqlite_master)不在数据库中。(-206)(SQLPrepare)@gordthompson我认为**to_sql**不能用于Informix。有没有一种方法可以加载到informix数据库中?方法是在现有的DataFrame
对象上调用to\u sql
方法,因此pd.DataFrame.to\u sql
毫无意义。您确实想执行df.to_sql(…)
以便pandas知道您要上载哪个数据帧。@gordthompson现在收到此错误:我的数据库是Informix“error”回溯(最近一次调用):文件“/home/webload/anaconda3/lib/python3.7/site packages/pandas/io/sql.py”,第1431行,在execute cur.execute(*args)中pyodbc.ProgrammingError:('42S02','[42S02][Informix][Informix ODBC Driver][Informix]指定的表(sqlite_master)不在数据库中。(-206)(SQLPrepare)@gordthompson我认为**to_sql**不能用于Informix。有没有办法加载到informix DB i中