Здравствуйте.
Я извлекаю данные из базы данных MS Access в Pandas DataFrame, для дальнейшего построения графиков библиотекой Matplotlib. Извлечение данных в DataFrame осуществляется следующим кодом:
import pyodbc
conn_str = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=C:\MEGA\Programming\Data_Bases\Microsoft Access\Показания.accdb;'
)
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()
import pandas as pd
df = pd.DataFrame({
'Дата': cursor.execute('select "Дата" from TABLE').fetchall(),
'Электроэнергия': cursor.execute('select "Электроэнергия" from TABLE').fetchall(),
'Горячая вода': cursor.execute('select "Горячая вода" from TABLE').fetchall(),
'Холодная вода': cursor.execute('select "Холодная вода" from TABLE').fetchall(),
})
df
В результате получаю:
Как можно заметить все данные в DataFrame типа object и в квадратных скобках (возможно в этом причина проблемы).
Мне нужно на основе этих данных построить графики с помощью библиотеки Matplotlib. Но если я пытаюсь построить графики с этими данными, то получаю ошибку: "setting an array element with a sequence.".
Тогда я пробую изменить тип данных столбцов DataFrame:
df['Горячая вода'] = df['Горячая вода'].astype(float)
И получаю ту же ошибку: "setting an array element with a sequence.".
Если меняю тип данных на тот же (хоть и бессмысленное действие, но я попробовал):
df['Горячая вода'] = df['Горячая вода'].astype(object)
То никакой ошибки не возникает.
Как решить данную проблему?