в примере данных игрушекFrame есть 2 набора координат: x, y и ex, ey.
d = {'x': [1, 2, 3, 4], 'y': [3, 3, 3, 3], 'ex': [1, 2, 3, 4], 'ey': [6, 6, 6, 6]}
toy = pd.DataFrame(data=d)
Каждый набор должен быть сначала нанесен на график рассеяния, а затем соединен линией.
plt.scatter(toy['x'],toy['y'], color='b')
plt.scatter(toy['ex'],toy['ey'], color='g')
plt.plot(toy['x'],toy['y'], color='b')
plt.plot(toy['ex'],toy['ey'], color='g')
Наконец, выборки между наборами, находящимися в одной строке, должны быть соединены также линиями. Это было достигнуто путем принятия каждого столбца в качестве панды. Тип серии
x = toy['x']
ex = toy['ex']
y = toy['y']
ey = toy['ey']
и итерации по ним в функции графика
for i in range(len(x)):
plt.plot([x[i], ex[i]], [y[i], ey[i]], color='cyan')
и это сработало.
Проблема в том, что при использовании реального dataFrame этот точный подход не работает и возвращает следующую ошибку:
KeyError Traceback (most recent call last)
<ipython-input-174-aa1b4849722f> in <module>()
21
22 for i in range(len(x)):
---> 23 plt.plot([x[i], ex[i]], [y[i], ey[i]], color='cyan')
24
25 plt.show()
/usr/lib/python3/dist-packages/pandas/core/series.py in __getitem__(self, key)
601 key = com._apply_if_callable(key, self)
602 try:
--> 603 result = self.index.get_value(self, key)
604
605 if not is_scalar(result):
/usr/lib/python3/dist-packages/pandas/indexes/base.py in get_value(self, series, key)
2167 try:
2168 return self._engine.get_value(s, k,
-> 2169 tz=getattr(series.dtype, 'tz', None))
2170 except KeyError as e1:
2171 if len(self) > 0 and self.inferred_type in ['integer', 'boolean']:
pandas/index.pyx in pandas.index.IndexEngine.get_value (pandas/index.c:3557)()
pandas/index.pyx in pandas.index.IndexEngine.get_value (pandas/index.c:3240)()
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)()
pandas/src/hashtable_class_helper.pxi in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8564)()
pandas/src/hashtable_class_helper.pxi in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8508)()
KeyError: 0
Кто-нибудь знает, что я сделал не так? Это меня сильно смущает, так как этот подход сработал для примера с игрушкой.
Большое спасибо заранее, и я надеюсь, что проблема была сформулирована достаточно четко (новичок здесь).