Поле кодирования задается без указания типа; тип не может быть выведен автоматически, поскольку данные не указаны как pandas.DataFrame

#python #python-3.x #pandas #altair

#python #python-3.x #pandas #altair

Вопрос:

Получение следующей ошибки

повысить значение ошибки («{} поле кодирования указано без типа; » ValueError: поле кодирования vipin указано без типа; тип не может быть выведен автоматически, поскольку данные не указаны как pandas.DataFrame.

 import pyodbc
import altair as alt
import pandas as pd
connection = pyodbc.connect(Driver='{SQL Server};',
                            server='serverSQLEXPRESS',
                            Database='DB',
                            uid ='UID',
                            pwd='pwd',
                            # Trusted_Connection='yes;'
                            )
cursor = connection.cursor()
df = pd.read_sql_query(' SELECT distinct EDITWHO,EDITDate FROM ddd where editwho is not null ',connection);
print(df)
for item, row in df.iterrows():
    chart =alt.Chart(row).mark_bar().encode(
        x=row['EDITWHO'],
        y=row['EDITDate']
)
chart.save('chart.html')
 

Ответ №1:

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

 chart = alt.Chart(df).mark_bar().encode(
  x='EDITWHO',
  y='EDITDate',
)
chart.save('chart.html')