ValueError: número incorrecto de elementos pasados ​​500, la ubicación implica 1, Python y Pandas

Estoy importando solo dos columnas del archivo .xlsx y me gustaría calcular algunas cosas (media, desviación, cambio porcentual) y luego me gustaría trazar todo esto. La primera parte no me da ningún problema, pero la ttwig sí.

Mi código se ve así:

import matplotlib.pyplot as plt import numpy as np import pandas as pd import matplotlib.mlab as mlab import math df = pd.read_excel('KDPrviIzbor.xlsx', sheetname='List1', index_col = 0) ch = df.pct_change(periods=252) ma = np.mean(ch)*100 std = np.std(ch)*100 x = np.linspace(-100,100,500) plt.plot(x,mlab.normpdf(x,ma,std)) plt.show() 

Pero cuando ejecuto mi código, me sale este error:

 Traceback (most recent call last): File "C:/Users/David/PythonStuff/normal_distribution.py", line 21, in  plt.plot(x,mlab.normpdf(x,ma,std)) File "C:\Python27\lib\site-packages\matplotlib\mlab.py", line 1579, in normpdf return 1./(np.sqrt(2*np.pi)*sigma)*np.exp(-0.5 * (1./sigma*(x - mu))**2) File "C:\Python27\lib\site-packages\pandas\core\ops.py", line 534, in wrapper dtype=dtype) File "C:\Python27\lib\site-packages\pandas\core\series.py", line 220, in __init__ data = SingleBlockManager(data, index, fastpath=True) File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 3383, in __init__ ndim=1, fastpath=True) File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 2101, in make_block placement=placement) File "C:\Python27\lib\site-packages\pandas\core\internals.py", line 77, in __init__ len(self.values), len(self.mgr_locs))) ValueError: Wrong number of items passed 500, placement implies 1` 

Pensé que el problema está en:

plt.plot(x,mlab.normpdf(x,ma,std))

Pero no puedo resolverlo. ¿Alguna sugerencia?

pandas.Series y std son pandas.Series objetos en tu ejemplo. El motivo es que np.mean aplicado a un pandas.DataFrame devuelve un pandas.Series . Sin embargo, mlab.normpdf (x, ma, std) espera valores flotantes o matrices numpy como entradas. Simplemente puedes convertir ma y std en flotadores por ma = float(ma) . No sugeriría usar int(ma) como lo señalaste en tu comentario, porque eso eliminaría los decimales.