将pandas系列转换为numpy数组

54

我是一个初学者,正在学习pandas和python。我的输入数据如下:

category   text
1   hello iam fine. how are you
1   iam good. how are you doing.

inputData= pd.read_csv(Input', sep='\t', names=['category','text'])
X = inputData["text"]
Y = inputData["category"]

这里的Y是熊猫系列对象,我想将其转换为numpy数组。所以我尝试使用.as_matrix方法。

请注意:由于您要求保留HTML标签,因此我在结果中包含了原始HTML标签。
YArray= Y.as_matrix(columns=None)
print YArray

但是我得到的输出是 [1,1](这是错误的,因为我只有一个列类别和两行)。我希望结果是一个2x1的矩阵。

2
从 v0.24.0 开始,.values 方法将被避免使用,取而代之的是两个新方法。请参考这个答案 - cs95
3个回答

87

为获得numpy数组,您需要

Y.values

当我执行Y.values()时,它会抛出TypeError: 'numpy.ndarray'对象不可调用的错误。 - vishnu
4
这是一个属性,不是一个方法。 - gzc
谢谢。但是reshape对我有用! - vishnu
@vishnu 不确定原始帖子是否根据您的评论进行了更新,但方法是执行Y.values,而不是Y.values()。 - Err

15
尝试这样做:
在你的序列对象上应用.as_matrix。
Y.reshape((2,1))

由于.as_matrix()仅返回numpy数组而不是numpy矩阵。 链接在这里


2
reshape已被弃用,请使用Y.values.reshape(2,1)代替。 - Arpit Sisodia

13
如果df是您的数据框(DataFrame),那么数据框的列(column)就是一个序列(series),要将其转换为数组(array),
df = pd.DataFrame()
x = df.values
print(x.type)
以下内容会被打印出来,
<class 'numpy.ndarray'>

成功地将其转换为数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接