Извлеките большие данные в Postgresql, используя python (желательно в формате фрейма данных) - PullRequest
0 голосов
/ 09 июля 2020

Я импортировал много больших файлов csv в таблицы в свою postgresql базу данных, я знаю, как подключиться к базе данных с помощью этого кода:

import psycopg2
try:
   connection = psycopg2.connect(user = "xxx",
                              password = "xxx",
                              host = "xxx",
                              port = "xxx",
                              database = "xxx")

   cursor = connection.cursor()
   # Print PostgreSQL Connection properties
   print ( connection.get_dsn_parameters(),"\n")

   # Print PostgreSQL version
   cursor.execute("SELECT version();")
   record = cursor.fetchone()
   print("You are connected to - ", record,"\n")

except (Exception, psycopg2.Error) as error :
   print ("Error while connecting to PostgreSQL", error)
finally:
   #closing database connection.
    if(connection):
        cursor.close()
        connection.close()
        print("PostgreSQL connection is closed")

Но мне трудно извлечь данные отсюда, это эти таблицы можно преобразовать в формат фрейма данных, так как я буду выполнять некоторый анализ ML для этих таблиц.

Я новичок в Postgresql, пожалуйста, помогите мне с этой проблемой.

1 Ответ

0 голосов
/ 09 июля 2020

Есть несколько способов сделать это. Очень простой способ - перебрать курсор с помощью функции fetchall ()

cursor.execute(query)
rows = cursor.fetchall()
data = []
for row in rows:
   data.append({'field1':row[0],'field2':row[1])})

Если вы используете Pandas Dataframe, вы можете сделать:

rows = pd.DataFrame(rows,columns=['field1','field2'])
...