Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将文件加载到Informix数据库时从DataFrame.to_sql获取错误_Python_Pandas_Dataframe_Pyodbc_Informix - Fatal编程技术网

Python 将文件加载到Informix数据库时从DataFrame.to_sql获取错误

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 =

在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 = 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中