Python “datetime转换为num”中的问题

Python “datetime转换为num”中的问题,python,datetime,numpy,pandas,matplotlib,Python,Datetime,Numpy,Pandas,Matplotlib,我使用pandas读取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

我使用pandas读取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 typex返回pandas.core.series.series。这个x=mdates.date2numx返回的错误为:AttributeError:'numpy.datetime64'对象没有属性'toordinal'。

有人能就这个问题对我有所帮助吗

使用x.astypedatetime转换为datetime


需要datetime.datetime的列表,而不是numpy.datetime64对象的数组。因此,您必须将一个命令转换为另一个。您知道哪个命令可以这样做吗?谢谢。给我AttributeError:“float”对象在matplotlib 1.5.0中没有属性“toordinal”。matplotlib 1.5.1/numpy 1.10.4/pandas 0.17.x python 2.7和python 3.4似乎可以使用,非常感谢。看起来你的命令很有效。但是另一行有问题,文件prac.py,第11行,在parse_dates=['Date']中,错误消息是raise HTTPErrorreq.get_full_url,code,msg,hdrs,fp urllib2.HTTPError:HTTP error 404:Not Found你知道为什么吗?@MikeMüller,也许mdates.date2numpd.Indexx.to_pydatetime适合你?
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))