Je suis nouveau sur les pandas & numpy. Je lance un programme simple
labels = ['a','b','c','d','e']
s = Series(randn(5),index=labels)
print(s)
obtenir l'erreur suivante
s = Series(randn(5),index=labels) File "C:\Python27\lib\site-packages\pandas\core\series.py", line 243, in
__init__
raise_cast_failure=True) File "C:\Python27\lib\site-packages\pandas\core\series.py", line 2950, in
_sanitize_array
raise Exception('Data must be 1-dimensional') Exception: Data must be 1-dimensional
Une idée de ce que peut être le problème? J'essaie d'utiliser Eclipse sans utiliser ipython notebook.
Je soupçonne que vos importations sont erronées
Si vous ajoutez ceci à votre code
from pandas import Series
from numpy.random import randn
labels = ['a','b','c','d','e']
s = Series(randn(5),index=labels)
print(s)
a 0.895322
b 0.949709
c -0.502680
d -0.511937
e -1.550810
dtype: float64
Ça fonctionne bien.
Cela dit et comme l'a souligné @jezrael, il est préférable d'importer les modules plutôt que de polluer l'espace de noms.
Votre code devrait ressembler à ceci à la place.
Solution
import pandas as pd
import numpy as np
labels = ['a','b','c','d','e']
s = pd.Series(np.random.randn(5),index=labels)
print(s)
Il semble que vous ayez besoin de numpy.random.Rand
pour random floats
ou numpy.random.randint
pour random integers
:
import pandas as pd
import numpy as np
np.random.seed(100)
labels = ['a','b','c','d','e']
s = pd.Series(np.random.randn(5),index=labels)
print(s)
a -1.749765
b 0.342680
c 1.153036
d -0.252436
e 0.981321
dtype: float64
np.random.seed(100)
labels = ['a','b','c','d','e']
s = pd.Series(np.random.randint(10, size=5),index=labels)
print(s)
a 8
b 8
c 3
d 7
e 7
dtype: int32