Нужна помощь с этим, так как я изо всех сил пытаюсь понять, как преобразовать мои данные, хранящиеся в .csv, в pandas df, и как анализировать данные для боке.
Мой файл .csv выглядит примерно так
6:22,30,30,31,31
6:38,30,30,32,32
6:53,30,30,31,32
7:05,30,30,32,32
7:39,31,31,33,33
Что я делаю:
df = pd.DataFrame.from_csv('D:\\Job\\GoogleDrive\\Job\\chatwars.csv')
Это дает мне df с красивыми пятью столбцами данных:
30 30.1 31 31.1
6:22
6:38 30 30 32 32
6:53 30 30 31 32
7:05 30 30 32 32
7:39 31 31 33 33
Хотя я понятия не имею, почему первые строки отформатированы таким образом, я предлагаю просто добавить какой-то заголовок в .csv (например, «время, минимум, открытие, закрытие, максимум»).
У меня вопрос: как правильно проанализировать эти данные, чтобы боке смог нарисовать за меня свечную диаграмму?
Я скопировал этот код для свечного графика из учебника, но с трудом его прочесть (я всего лишь неделя в Python, пожалуйста, потерпите меня). Он делает в точности все, что мне нужно, кроме чтения моего df:
df["date"] = pd.to_datetime(df["date"])
inc = df.close > df.open
dec = df.open > df.close
w = 12*60*60*1000 # half day in ms
TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000, title = "MSFT Candlestick")
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha=0.3
p.segment(df.date, df.high, df.date, df.low, color="black")
p.vbar(df.date[inc], w, df.open[inc], df.close[inc], fill_color="#D5E1DD", line_color="black")
p.vbar(df.date[dec], w, df.open[dec], df.close[dec], fill_color="#F2583E", line_color="black")
output_file("candlestick.html", title="candlestick.py example")
show(p) # open a browser
После применения предложенного кода из комментария мне стало проще изменить свой .csv следующим образом:
2017-05-19 06:22:00,30,30,31,31
2017-05-19 06:38:00,30,30,32,32
2017-05-19 06:53:00,30,30,31,32
После этого я изменил «дату» на «время», и код тоже заработал, как и предполагалось! Потрясающие! : D