在pandas中聚合数据

时间:2012-08-31 17:12:00

标签: python numpy pandas

我正在尝试探索Pandas图书馆并停留在我经常面对的一个例子中,我认为熊猫有解决方案。鉴于以下代码:

In [63]: d1 = np.random.rand(3,3)
In [63]: d2 = np.random.rand(3,3)

In [64]:s1 = pandas.Series(d1,index = [['a1']*d1.shape[0],
                             [4]*d1.shape[0],
                             range(d1.shape[0])])

Out[64]:a1  4  0    [ 0.00881133  0.71344668  0.03611378]
               1    [ 0.37328776  0.63195947  0.23000941]
               2    [ 0.68466443  0.85891677  0.31740809]

In [65]: s2 = pandas.Series(d2,index = [['a2']*d2.shape[0],
                             [5]*d2.shape[0],
                             range(d2.shape[0])])
Out[65]:a2  5  0    [ 0.00881133  0.71344668  0.03611378]
               1    [ 0.37328776  0.63195947  0.23000941]
               2    [ 0.68466443  0.85891677  0.31740809]

s = s1.append(s2)

a1  4  0    [ 0.00881133  0.71344668  0.03611378]
       1    [ 0.37328776  0.63195947  0.23000941]
       2    [ 0.68466443  0.85891677  0.31740809]
    5  0    [ 0.00881133  0.71344668  0.03611378]
       1    [ 0.37328776  0.63195947  0.23000941]
       2    [ 0.68466443  0.85891677  0.31740809]

如何在没有标签的情况下单独获取所有数据矩阵的列表?

2 个答案:

答案 0 :(得分:2)

s.values可以解决问题。

documentationDataFrame.values将帧转换为Numpy-array矩阵表示。“

我认为你的意思是pandas.DataFrame以上(不是Series)。 Series.values也存在。

答案 1 :(得分:1)

我在运行代码时遇到错误。但是,要将pandas Series转换为numpy数组,请使用pandas.Series.values方法。 Wes的documentation做得非常好。花一些时间回顾......