Я пытаюсь загрузить файл данных pandas в базу данных PostgreSQL, но у меня возникает ошибка.
import pandas as pd
import psycopg2
import pandas.io.sql as sql
conn_string = "host='localhost' dbname='**' user='postgres' password='**' port=5432"
conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
hh = pd.read_csv("C:/opus/data/mrcog/inputs/synthpop/synth_hhlds.csv")
hh.to_sql('buildings_updated', conn)
, но когда я пытаюсь загрузить таблицу, я получаю сообщение об ошибке, что яне понимаю, что говорит.
DatabaseError Traceback (most recent call last)
<ipython-input-12-b1b2758437b2> in <module>()
16
17 hh = pd.read_csv("C:/opus/data/mrcog/inputs/synthpop/synth_hhlds.csv")
---> 18 hh.to_sql('buildings_updated', conn)
C:\Anaconda2\lib\site-packages\pandas\core\generic.pyc in to_sql(self, name, con, flavor, schema, if_exists, index, index_label, chunksize, dtype)
1343 sql.to_sql(self, name, con, flavor=flavor, schema=schema,
1344 if_exists=if_exists, index=index, index_label=index_label,
-> 1345 chunksize=chunksize, dtype=dtype)
1346
1347 def to_pickle(self, path, compression='infer'):
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in to_sql(frame, name, con, flavor, schema, if_exists, index, index_label, chunksize, dtype)
469 pandas_sql.to_sql(frame, name, if_exists=if_exists, index=index,
470 index_label=index_label, schema=schema,
--> 471 chunksize=chunksize, dtype=dtype)
472
473
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in to_sql(self, frame, name, if_exists, index, index_label, schema, chunksize, dtype)
1503 if_exists=if_exists, index_label=index_label,
1504 dtype=dtype)
-> 1505 table.create()
1506 table.insert(chunksize)
1507
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in create(self)
584
585 def create(self):
--> 586 if self.exists():
587 if self.if_exists == 'fail':
588 raise ValueError("Table '%s' already exists." % self.name)
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in exists(self)
572
573 def exists(self):
--> 574 return self.pd_sql.has_table(self.name, self.schema)
575
576 def sql_schema(self):
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in has_table(self, name, schema)
1515 "WHERE type='table' AND name=%s;") % wld
1516
-> 1517 return len(self.execute(query, [name, ]).fetchall()) > 0
1518
1519 def get_table(self, table_name, schema=None):
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in execute(self, *args, **kwargs)
1414 ex = DatabaseError(
1415 "Execution failed on sql '%s': %s" % (args[0], exc))
-> 1416 raise_with_traceback(ex)
1417
1418 @staticmethod
C:\Anaconda2\lib\site-packages\pandas\io\sql.pyc in execute(self, *args, **kwargs)
1402 cur.execute(*args, **kwargs)
1403 else:
-> 1404 cur.execute(*args)
1405 return cur
1406 except Exception as exc:
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': relation "sqlite_master" does not exist
LINE 1: SELECT name FROM sqlite_master WHERE type='table' AND name=?...
Как можно исправить эту ошибку?Загрузка данных должна быть прямой.Я использую панды версии 4.3.34.