ValueError с Pandas – сформированные пройденные значения

Я пытаюсь использовать Pandas и PyODBC, чтобы вытащить из представления SQL Server и выгрузить содержимое в файл excel.

Тем не менее, я получаю сообщение об ошибке при сбросе фрейма данных (я могу распечатать содержимое colums и dataframe):

  • Как реализовать «in» и «not in» для блока данных Pandas
  • Как изменить значение индекса данных Pandas?
  • pandas читает csv с дополнительными запятыми в столбце
  • Pandas: игнорировать все строки после определенной строки при чтении файла в DataFrame
  • преобразовать фрейм данных python в список
  • pandas: Когда содержимое ячейки является списком, создайте строку для каждого элемента в списке
  • ValueError: Shape of passed values is (1, 228), indices imply (2, 228) 

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

    Я не могу понять, что вызывает эту ошибку, и изменение представления, чтобы отличать исходные столбцы по-разному, не имеет никакого эффекта.

    Вот код python, который я использую:

     import pyodbc import pandas as pd cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;UID=username;PWD=password') cursor = cnxn.cursor() script = """ SELECT * FROM schema.ActiveEnrollmentCount """ cursor.execute(script) columns = [desc[0] for desc in cursor.description] data = cursor.fetchall() df = pd.DataFrame(list(data), columns=columns) writer = pd.ExcelWriter('c:\temp\ActiveEnrollment.xlsx') df.to_excel(writer, sheet_name='bar') writer.save() 

    2 столбца, которые я пытаюсь вытащить, представляют собой трехзначные целые числа.

  • Сохранить сеанс в IPython, как в MATLAB?
  • Используйте список значений для выбора строк из блока данных pandas
  • Создание вспомогательных таблиц в листе Excel из xml с использованием дерева элементов python
  • Модуль openpyxl не имеет атрибута '__version__' при импорте pandas
  • pandas - добавить новый столбец в dataframe из словаря
  • Вывод разницы в двух кадрах данных Pandas бок о бок - выделение разницы
  • One Solution collect form web for “ValueError с Pandas – сформированные пройденные значения”

    Чтобы запросить данные из базы данных, вы можете лучше использовать встроенную функцию read_sql_query вместо выполнения и преобразования в dataframe вручную.
    Для вашего примера это даст что-то вроде:

     df = pd.read_sql_query(script, cnxn) 

    Дополнительную информацию о read_sql / to_sql . В to_sql .

    Python - лучший язык программирования в мире.