我使用熊猫读取csv文件进行一些分析。但是返回的类型是pandas.core.series.Series,无法使用命令matplotlib.dates.date2num将其转换为num。下面是我的代码:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, output_file, show
import matplotlib.dates as mdates
import time
import matplotlib.pyplot as plt
AAPL = pd.read_csv(
"http://ichart.yahoo.com/table.csvs=AAPL&a=0&b=1&c=2009&d=0&e=1&f=2010",
parse_dates=['Date']
)
x = AAPL['Date']
y = AAPL['Close']
print type(x)
x = mdates.date2num(x)
z4 = np.polyfit(x, y, 6)
p4 = np.poly1d(z4)
xx = np.linspace(x.min(), x.max(), 100)
dd = mdates.num2date(xx)
plt.plot(dd,p4(xx))
命令print type(x)
返回pandas.core.series.Series
。该x = mdates.date2num(x)
错误返回为:AttributeError: 'numpy.datetime64' object has no attribute 'toordinal'.
谁能为我解决这个问题?
使用x.astype(datetime)
转换为datetime
。
from datetime import datetime
x = mdates.date2num(x.astype(datetime))
z4 = np.polyfit(x, y, 6)
p4 = np.poly1d(z4)
xx = np.linspace(x.min(), x.max(), 100)
dd = mdates.num2date(xx)
plt.plot(dd,p4(xx))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句