"pandas datetime conversion to num"中的问题 [英] problems in "pandas datetime convert to num"
问题描述
我使用熊猫读取csv文件进行一些分析.但是返回的类型是pandas.core.series.Series,无法使用命令matplotlib.dates.date2num将其转换为num.下面是我的代码:
I use pandas to read a csv file to do some analysis. But the returned type is pandas.core.series.Series, which can not be converted to num using the command matplotlib.dates.date2num. Below is my code:
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'.
The command print type(x)
returns pandas.core.series.Series
. This one x = mdates.date2num(x)
returns the error as: AttributeError: 'numpy.datetime64' object has no attribute 'toordinal'.
任何人都可以向我说明这个问题吗?
Any one can shed a light on me for this issue?
推荐答案
使用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))
这篇关于"pandas datetime conversion to num"中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!