[英]pandas Series getting 'Data must be 1-dimensional' error
I'm new to pandas & numpy. 我是熊猫和numpy的新手。 I'm running a simple program 我正在运行一个简单的程序
labels = ['a','b','c','d','e']
s = Series(randn(5),index=labels)
print(s)
getting the following error 得到以下错误
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
Any idea what can be the issue? 知道可能是什么问题吗? I'm trying this using eclipse, not using ipython notebook. 我正在尝试使用eclipse,而不是使用ipython笔记本。
It seems you need numpy.random.rand
for random floats
or numpy.random.randint
for random integers
: 看来你需要numpy.random.rand
随机floats
或numpy.random.randint
随机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
I suspect you have your imports wrong 我怀疑你的进口错了
If you add this to your 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
It runs fine. 它运行正常。
That said, and as pointed out by @jezrael, it's better practice to import the the modules rather than pollute the namespace. 也就是说,正如@jezrael所指出的,导入模块而不是污染命名空间更好。
Your code should look like this instead. 你的代码应该是这样的。
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.