来自熊猫DataFrame重试的烛台情节
我是matplotlib的新手,需要一些指导。我试图从“来自Pandas DataFrame的烛台图”中重现这段代码,作为通过添加“read_csv”函数来学习的一种方式。来自熊猫DataFrame重试的烛台情节
我的错误消息,不停地说“ValueError异常:长度不匹配:预计轴有6个元素,新的价值观有5个元素”
我的问题是:
- 我是什么代码丢失?我读了cvs,我使用了正确的数据列,并且我明白索引已经重置,但我不知道为什么它会一直出现错误。
请大家帮忙。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
from mpl_finance import candlestick_ohlc
import matplotlib.dates as mdates
import datetime as dt
df = pd.read_csv("/Users/paul/Documents/python (original)/Quant/sp500.csv", usecols=['Date', 'Open','High','Low','Close'])
#Reset the index to remove Date column from index
df_ohlc = df.reset_index()
#Naming columns
df_ohlc.columns = ["Date","Open","High",'Low',"Close"]
#Converting dates column to float values
df_ohlc['Date'] = df_ohlc['Date'].map(mdates.date2num)
#Making plot
fig = plt.figure()
ax1 = plt.subplot2grid((6,1), (0,0), rowspan=6, colspan=1)
#Converts raw mdate numbers to dates
ax1.xaxis_date()
plt.xlabel("Date")
print(df_ohlc)
#Making candlestick plot
candlestick_ohlc(ax1,df_ohlc.values,width=1, colorup='g', colordown='k',alpha=0.75)
plt.ylabel("Price")
plt.legend()
plt.show()
在.csv文件中的每行之前不需要“0”,“1”,“2”。你必须先删除然后:
如果你要重置索引,您需要在数据帧的实际索引列,所以加
index_col
这样的:df = pd.read_csv("/Users/paul/Documents/python (original)/Quant/sp500.csv", usecols=['Date', 'Open','High','Low','Close'], index_col= 'Date')
转换从字符串的日期列于日期时间:
df_ohlc['Date'] = pd.to_datetime(df_ohlc['Date'])
编辑:
如果您在您的CSV文件不能删除0,1,2 ...列,因为它太大,修改第一行,使“指标”一栏显示为:'index', 'Date', 'Open','High','Low','Close'
然后,在你代码:
df = pd.read_csv("/Users/paul/Documents/python (original)/Quant/sp500.csv", usecols=['index', 'Date', 'Open','High','Low','Close'], index_col="Date")
df.drop('index', axis=1, inplace=True)
我欣赏两者的指针。我正在想方法来匹配列。我正在重读所有的函数,并且昨晚用df = pd.read_csv(“/ Users/paul/Documents/python(original)/Quant/sp500.csv”,index_col ='Date',parse_dates = True,usecols = ['日期','打开','高','低','关闭'])。有效。 – fishtang
脚本的哪一行出现错误?请提供完整的错误追溯。目前没有关于输入文件的信息。 (见[mcve])所以你可能在这里得不到答案,因为没有人能够重现问题。 – ImportanceOfBeingErnest
嗨重要性,我对缺乏信息表示歉意。在最初的几个记录的读取是日期开盘价最高价最低价收盘价 0 2015年9月22日1961.390015 1961.390015 1929.219971 1942.739990 1 2015年9月23日1943.239990 1949.520020 1932.569946 1938.760010 2 2015年9月24日1934.810059 1937.170044 1908.920044 1932.239990 – fishtang
全错误消息是“完整的错误信息是”raceback(最近调用最后一次): 文件“/用户/保罗/文件/ python(原始)/定量/蜡烛棒图从stackoverflow v4.py”,第17行,在 df_ohlc.columns = [“Date”,“Open”,“High”,“Low”,“Close”] 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site- packages/pandas/core/generic.py“,行3094, –
fishtang