#python #pandas #matplotlib
#python #панды #matplotlib
Вопрос:
Я немного новичок в matplotlib. Я пытаюсь построить метки для каждой координаты (x, y) на моем линейном графике. Я получаю Keyerror: 0 для этой строки кода: x = df[i][‘DATE_DATE’]
Когда я запускаю print(df[‘DATE_DATE’]), я получаю следующие значения:
0 Sep 29
1 Sep 30
2 Oct 01
3 Oct 02
4 Oct 03
5 Oct 04
6 Oct 05
7 Oct 06
8 Oct 07
9 Oct 08
10 Oct 09
11 Oct 10
12 Oct 11
13 Oct 12
Вот весь код для контекста:
import matplotlib.pyplot as plt
from connect_to_db import get_df2
df = get_df2()
df['DATE_DATE'] = df['DATE_DATE'].dt.strftime('%b %d')
ax = df.plot(x='DATE_DATE', y='Sum', fontsize=10, color='#5C7AA6', linewidth=2.0, legend=False,
xlabel='', ylabel='Sum', figsize=(10, 5)).grid(axis='y')
for i in range(len(df)):
x = df[i]['DATE_DATE']
y = df[i]['Sum']
plt.plot(x, y, 'bo')
plt.text(x * (1 0.01), y * (1 0.01), i, fontsize=12)
plt.show()
Есть идеи относительно того, почему я получаю Keyerror в этом цикле for, когда в этом столбце появляются объекты?
Спасибо за помощь!
Комментарии:
1. похоже, у вас индексирование в обратном направлении — попробуйте распечатать
x[0]["DATE_DONE"]
, это должно выдать ошибку ключа. Теперь попробуйте распечататьx["DATE_DONE"][0]
2. Ну, это действительно неудобно. Спасибо за помощь!
3. случается с лучшими из нас!