Matplotlib / numpy / pandas IndexError: индекс 0 выходит за пределы оси 0 с размером 0 - PullRequest
0 голосов
/ 28 октября 2018

Я довольно новичок в numpy и pandas и столкнулся со следующей ошибкой, я понятия не имею, как исправить.Я получаю эту ошибку, даже если форма массива (2603, 1).

IndexError: index 0 is out of bounds for axis 0 with size 0

Это вызывает у меня много проблем при масштабировании данных и их построении.Я получил данные: http://bitcoincharts.com/charts/chart.json?m=bitstampUSD#rg360zig12-hourztgSzm1g10zm2g25zv, содержащие историю биткойнов.

Вот мой код:

url = 'http://bitcoincharts.com/charts/chart.json?m=bitstampUSD#rg360zig12-hourztgSzm1g10zm2g25zv'
data = json.loads(requests.get(url).content)

df=pd.DataFrame(data, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume_btc', 'volume_curr', 'weighted_price'])
df.set_index('timestamp', inplace=True)
df.sort_index(inplace=True)

cols=df.columns
df[cols] = df[cols].apply(pd.to_numeric, errors='coerce')

close = df['close'].values.reshape(-1, 1)
print(close.shape)

plt.plot(close)

ДОБАВЛЕНИЕ

Я решил ошибку, заполнив NaNзначения с числом (я сделал среднее из предыдущих 5 строк).

1 Ответ

0 голосов
/ 28 октября 2018

Итак, проблема в этой строке

df.set_index('timestamp', inplace=True)

Вы устанавливаете индекс dataFrame как timeStamp, который не равен 0. Matplotlib ищет индекс 0, который показывает ошибку.

Вы можете переиндексировать его снова от 0 до n-1, тогда вы получите желаемый результат.

...