KeyError: 6 при добавлении меток в регплот - PullRequest
0 голосов
/ 28 июня 2019

У меня есть фрейм данных со следующими столбцами: «Проект», «Часы», «Доход», «Скорость»

Я пытаюсь построить регплот с курсом по оси X и доходом по оси Y и добавить метку имени проекта к точкам на моем регплоте. Вот мой код:

ax=sns.regplot(x = 'Revenue', y = 'Rate',data= df_hours_revenue, ci = None)
sns.set(rc={'figure.figsize':(20,10)})
# ax.set_xlabel('')
# ax.set_ylabel('Rate (£/hour)')
sns.set_context('poster')
plt.title("Rate vs. project revenue 2018-2019")

for line in range(0,df_hours_revenue.shape[0]):
     ax.text(df_hours_revenue.Revenue[line], df_hours_revenue.Rate[line], 
     df_hours_revenue.Project[line], horizontalalignment='left', 
     size='small', color='Black', weight='normal')

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

KeyError                                  Traceback (most recent call last)
<ipython-input-55-fdcfd6157523> in <module>
      9 
     10 for line in range(0,df_hours_revenue.shape[0]):
---> 11      ax.text(df_hours_revenue.Revenue[line], df_hours_revenue.Rate[line], 
     12      df_hours_revenue.Project[line], horizontalalignment='left',
     13      size='small', color='Black', weight='normal')

~/anaconda3/lib/python3.7/site-packages/pandas/core/series.py in __getitem__(self, key)
    866         key = com.apply_if_callable(key, self)
    867         try:
--> 868             result = self.index.get_value(self, key)
    869 
    870             if not is_scalar(result):

~/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_value(self, series, key)
   4373         try:
   4374             return self._engine.get_value(s, k,
-> 4375                                           tz=getattr(series.dtype, 'tz', None))
   4376         except KeyError as e1:
   4377             if len(self) > 0 and (self.holds_integer() or self.is_boolean()):

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()

KeyError: 6

1 Ответ

0 голосов
/ 28 июня 2019

Если вы хотите получить доступ к элементу серии по его позиции, вы должны использовать .iloc, например ::

df_hours_revenue.Revenue.iloc[line]

Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...