pandas将列(系列)转换为numpy数组

时间:2017-12-22 07:28:28

标签: python pandas numpy

In [6]: df.a.as_matrix()
Out[6]: array([list([1, 2]), list([3, 4])], dtype=object)

In [7]: df = pd.DataFrame({'a':[[1,2], [3, 4]]})

In [8]: l = df.a.as_matrix()

In [9]: type(l)
Out[9]: numpy.ndarray

In [10]: l
Out[10]: array([list([1, 2]), list([3, 4])], dtype=object)

我已经知道这个功能了。但令我困扰的是,在将此列转换为np数组后,我无法正常使用重塑或其他形状函数。似乎数组类型不是int或float,但是如何分配它的类型以便我可以重塑这个numpy数组?

1 个答案:

答案 0 :(得分:0)

首先转换为嵌套列表,然后转换为array

print (df.a.tolist())
[[1, 2], [3, 4]]

arr = np.array(df.a.tolist())
print (arr)
[[1 2]
 [3 4]]

如果想要压扁1d数组:

a2 = np.concatenate(df.a)
print (a2)
[1 2 3 4]