如何将一系列数组转换为2D numpy数组

时间:2016-05-29 16:44:06

标签: python numpy pandas

有没有办法将每个行包含数组的Pandas系列转换为2D numpy数组?

当您在Python中显示时,系列如下所示:

[array([ 58.,  -1.,  -1.,  -1.,  -1.])
 array([ 77.,  95.,  -1.,  -1.,  -1.])]

我想得到一个看起来像这样的numpy矩阵:

[[ 58.,  -1.,  -1.,  -1.,  -1.]
 [ 77.,  95.,  -1.,  -1.,  -1.]]

有一种简单的方法吗?任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:4)

import pandas as pd
import numpy as np

s = pd.Series([np.array([ 58.,  -1.,  -1.,  -1.,  -1.]),
               np.array([ 77.,  95.,  -1.,  -1.,  -1.])])      

rslt = np.array(s.tolist())


rslt
Out[16]: 
array([[ 58.,  -1.,  -1.,  -1.,  -1.],
       [ 77.,  95.,  -1.,  -1.,  -1.]])

答案 1 :(得分:1)

l = [pd.Series([np.array([ 77.,  95.,  -1.,  -1.,  -1.]),np.array([ 58.,  -1.,  -1.,  -1.,  -1.])])]

答案 2 :(得分:1)

如果:

s = pd.Series([np.array([ 58.,  -1.,  -1.,  -1.,  -1.]),
               np.array([ 77.,  95.,  -1.,  -1.,  -1.])])

然后

s.apply(pd.Series).values