Я хотел бы создать гистограмму, используя данные, которые я извлек.
На оси x должны отображаться месяцы, на бинах должны быть указаны ценовые диапазоны, а на оси y - частоты.
Входные данные для гистограммы выглядят следующим образом:
print(three.head())
Price
Date
2020-01-15 144.7500
2020-01-14 145.2000
2020-01-13 143.8800
2020-01-10 144.6200
2020-01-09 144.8300
Мой код работал нормально, пока я не попытался построить график. Когда я сделал это, я получил ошибки от своих функций get_data и clean_data--, которые ранее работали нормально.
Here is my code:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Jan 15 08:03:41 2020
@author: rahelmizrahi
"""
import json
import requests
import statistics
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def get_data(url):
request = requests.get(url)
response = request.text
data = json.loads(response)
return data
url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=DIS&apikey=IGDV8B3MO9GQ9R35"
x = get_data(url)
def clean(data):
data = get_data(url)
clean_data = pd.DataFrame(data['Time Series (Daily)']).transpose()
clean_data = clean_data.drop(columns = ['1. open', '2. high', '3. low', '5. volume'])
clean_data.reset_index(inplace = True)
clean_data.rename(columns = {'index':'Date', '4. close': 'Price'}, inplace = True)
clean_data.set_index('Date', inplace = True)
return clean_data
c = clean(x)
def prevMonthsData(numMonths, data):
data = clean(data)
rows = numMonths * 30
dataSlice = data.iloc[0:rows, :]
return dataSlice
three = prevMonthsData(3, c)
# create a histogram
idx = three.drop(columns = ['Price'])
three['bucket'] = pd.cut(idx, 10) #gives errror: Input array must be 1 dimensional
print(idx)