Python 绘制滚动平均值(熊猫)不工作

Python 绘制滚动平均值(熊猫)不工作,python,numpy,pandas,Python,Numpy,Pandas,我知道这里有一大堆关于在熊猫中使用滚动平均函数的问题,但我无法让它发挥作用 我对Python和包numpy、pandas等都是新手 我有一个DateTime对象列表和一个简单整数列表。绘制它们是没有问题的。但我无法在图表上画出移动平均线 我正试图用它来理解它,但我仍然无法让它工作。这就是我尝试过的: # code before this simply reads a file and converts dates into datetime objects and values into a l

我知道这里有一大堆关于在熊猫中使用滚动平均函数的问题,但我无法让它发挥作用

我对Python和包numpy、pandas等都是新手

我有一个DateTime对象列表和一个简单整数列表。绘制它们是没有问题的。但我无法在图表上画出移动平均线

我正试图用它来理解它,但我仍然无法让它工作。这就是我尝试过的:

# code before this simply reads a file and converts dates into datetime objects and values into a list
x1 = date_object #list of datetime objects
y1 = values1 #list of integer values
plot(x1,y1) # works fine

t = pd.date_range(date_object[0].strftime('%m/%d/%Y'), date_object[len(date_object)-1].strftime('%m/%d/%Y'), freq='W')
ts = pd.Series(y1, t)

ts_movavg = pd.rolling_mean(ts,10)

plot(ts_movavg)
…我得到以下错误:

ValueError: setting an array element with a sequence.
你很快就会知道,我很困惑。我想我错过了系列对象的要点

编辑:(完全回溯)

ValueError回溯(最近一次调用)
在()
33 ts=pd.系列(y1,x1)
34
--->35 ts_movavg=PD.滚动平均值(ts,10)
36
37副总经理()
C:\Users\*****\Anaconda\lib\site packages\pandas\stats\moments.py(参数、窗口、最小时段、频率、中心、时间规则,**kwargs)
507返回滚动时刻(参数、窗口、呼叫周期、最小周期、,
508频率=频率,中心=中心,
-->509时间规则=时间规则,**kwargs)
510
511返回f
C:\Users\**\Anaconda\lib\site packages\pandas\stats\moments.py in\u rolling\u moment(参数、窗口、函数、最小值、轴、频率、中心、时间规则,**kwargs)
278 arg=_conv_timerule(arg、freq、time_rule)
279计算=lambda x:func(x,窗口,minp=minp,**kwargs)
-->280返回\u钩子,值=\u进程\u数据\u结构(arg)
281#实际计算力矩。更快的方法?
282如果values.ndim>1:
C:\Users\**\Anaconda\lib\site packages\pandas\stats\moments.py位于进程数据结构(arg,kill\u inf)中
326
327如果不是issubclass(values.dtype.type,float):
-->328值=值。astype(浮点)
329
330如果杀死inf:
ValueError:使用序列设置数组元素。

有人能告诉我如何使用滚动平均函数绘制移动平均线吗?

试试
ts\u movavg.plot()
没有变化,得到相同的错误你能添加完整的回溯吗?还有
ts_movavg.head()
看起来怎么样?请参见编辑。它不允许我调用ts_movavg.head(),因为在我看来,在尝试设置ts_movavgas时出错,这不是一个数字列表;这是字符串列表的列表;这意味着你的代码被破坏了;但是如果您只想将绘图更改为
ts=pd.Series(y1,t)
ts=pd.Series([float(xs[0]),对于y1中的xs,t)
    ValueError                                Traceback (most recent call last)
<ipython-input-228-2247062d3126> in <module>()
     33 ts = pd.Series(y1, x1)
     34 
---> 35 ts_movavg = PD.rolling_mean(ts,10)
     36 
     37 ts_movavg.head()

C:\Users\****\Anaconda\lib\site-packages\pandas\stats\moments.py in f(arg, window, min_periods, freq, center, time_rule, **kwargs)
    507         return _rolling_moment(arg, window, call_cython, min_periods,
    508                                freq=freq, center=center,
--> 509                                time_rule=time_rule, **kwargs)
    510 
    511     return f

C:\Users\****\Anaconda\lib\site-packages\pandas\stats\moments.py in _rolling_moment(arg, window, func, minp, axis, freq, center, time_rule, **kwargs)
    278     arg = _conv_timerule(arg, freq, time_rule)
    279     calc = lambda x: func(x, window, minp=minp, **kwargs)
--> 280     return_hook, values = _process_data_structure(arg)
    281     # actually calculate the moment. Faster way to do this?
    282     if values.ndim > 1:

C:\Users\****\Anaconda\lib\site-packages\pandas\stats\moments.py in _process_data_structure(arg, kill_inf)
    326 
    327     if not issubclass(values.dtype.type, float):
--> 328         values = values.astype(float)
    329 
    330     if kill_inf:

ValueError: setting an array element with a sequence.