ссылки на вопрос по стековому потоку Я новичок в Python и попробовал программу, указанную в ссылках, однако я получаю указанную ниже ошибку. Мне здесь что-то не хватает? Не могли бы вы указать на меня?
………………………….
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({
'weight':[1, 2, 3, 4],
'date':['2011-05-01', '2013-10-10', '2015-12-17', '2017-10-29']
})
df['date'] = pd.to_datetime(df['date'])
df1 = df.groupby(df['date'].dt.to_period('M')).sum()
df1 = df1.resample('M').asfreq().fillna(0)
plt.figure();
df1.plot(x='date', y='weight', kind='bar')
.......................................... Traceback (most recent call last):
File "/PycharmProjects/hellopython/hello_world", line 24, in
df1.plot(x='date', y='weight', kind='bar')
File "\PycharmProjects\hellopython\venv\lib\site-
packages\pandas\plotting_core.py", line 920, in call
elif not isinstance(data[x], ABCSeries):
File "\PycharmProjects\hellopython\venv\lib\site-packages\pandas\core\frame.py", line 3024, in getitem
indexer = self.columns.get_loc(key)
File "\PycharmProjects\hellopython\venv\lib\site-
packages\pandas\core\indexes\base.py", line 3082, in get_loc
raise KeyError(key) from err
KeyError: 'date'
Два варианта
Вариант 1
Поскольку
date
является индексом, нам не нужно передавать оси x и y для построения графика. Спасибо @ Nk03 за предложение этой опции.Изменена строка ниже в существующем коде
Код
Вариант 2 — сбросить индекс
Добавлена строка ниже к существующему коду
Полный код
Привет, большое спасибо. Он работает, но я просто попробовал это таким же образом, как Option2 df1.plot (x = ‘weight’, y = ‘date’, kind = ‘bar’) изменил x и y, и он выдает ошибку компилятора как TypeError (no числовые данные для построения графика) TypeError: нет числовых данных для построения графика. Здесь можно изменить x и y или не следует менять? Не могли бы вы поправить меня и в этом? Заранее спасибо. — person ksi; 08.06.2021
Если вы хотите отобразить нечисловые типы, такие как дата, по оси y, тогда plz посетить — person ksi; 08.06.2021