简体   繁体   English

pandas系列获取'数据必须是1维'错误

[英]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随机floatsnumpy.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM