Вывод sql в pandas dataframe с использованием python в Pycharm IDE - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь сохранить свой вывод sql в pandas dataframe, используя это, я должен применить некоторую логику и сохранить результат в таблицу.

как я могу сохранить результирующий набор в pandas dataframe.

код:

import pyodbc
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                      "Server=DESKTOP-XXXXX;"
                      "Database=MOVIE_INFO;"
                      "Trusted_Connection=yes;")


cursor = cnxn.cursor()

cursor.execute('SELECT * FROM MOVIE_SRC')

for row in cursor:
    print('row = %r' % (row,)

Спасибо

я попробовал другой подход, например

import pyodbc
import pandas as pd


cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                      "Server=DESKTOP-XXXX;"
                      "Database=MOVIE;"
                      "Trusted_Connection=yes;")
cnxn = cnxn.cursor()
crsr = cnxn.cursor()
for table_name in crsr.tables(tableType='TABLE'):
    print(table_name)
cursor = cnxn.cursor()
sql = "Select *"
sql = sql + " From MOVIE"
print(sql)
cursor.execute(sql)
data = pd.read_sql(sql, cnxn)

но получаю ошибку

AttributeError: 'pyodbc.Cursor' object has no attribute 'cursor'

Пожалуйста, поделитесь своим предложением. Спасибо

1 Ответ

0 голосов
/ 02 сентября 2018

Хотя в Pandas есть методы прямого чтения, такие как pandas.read_sql(), вы должны иметь возможность взять ваш успешный объект cursor, определить новые переменные в виде пустых списков Python и добавить строки, а затем создать фрейм данных Pandas. Предполагая, что ваша таблица настроена со столбцами в качестве отдельных переменных, вот пример кода:

import Pandas as pd

# create some empty lists:
var1 = []
var2 = []
var3 = []

# append rows from the cursor object:
for row in cursor:
  var1.append(row[0])
  var2.append(row[1])
  var3.append(row[2])

# Create a dictionary with header names if desired:
my_data = {'header1': var1,
           'header2': var2,
           'header3': var3}

# Make a Pandas dataframe:
df = pd.DataFrame(data = my_data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...