将一组pandas.Series列表转换为pandas.Series的numpy数组

11

我想将一个 pandas.Series 的列表转换为一个 pandas.Series 的numpy数组。但是当我调用数组构造函数时,它也会将我的Series转换。

>>> l = [Series([1,2,3]),Series([4,5,6])]
>>> np.array(l)
array([[1, 2, 3],
       [4, 5, 6]], dtype=int64)

我的列表很小(约10个元素),因此为了性能问题,我希望避免创建pandas.DataFrame。

有没有简单的解决方法?

先感谢您了。


创建Series肯定也很昂贵(它比DataFrame好到哪里去了?)真的不清楚你为什么要这样做(为什么不直接使用numpy呢?)。 - Andy Hayden
我正在记录大约n(~20)个变量的实时测量数据。在每个记录中,我都会为m个子集(可以是1到20,每次迭代不同)的变量计算滚动矩,并比较这些数据。目前,我正在将实时数据写入一个数据框中(索引大小为预期测量值的数量,列大小为20),选择我需要的m个仪器,并将rolling_moment(myDf.iloc[Ai:Bi])存储在一个数组中(Ai:Bi对于m的每个元素都不同)。最好的方法是什么? - deubNippon
1个回答

7

当您赋值时,应设置数组的dtype

l = [pd.Series([1,2,3]),pd.Series([4,5,6])]
np.array(l, dtype=pd.Series)

尽管这引出了一个问题:为什么你想要一个系列的ndarray,而不是一个系列内容的ndarray?

非常感谢!我需要在一些序列上使用rolling_moment函数,据我所知,这个函数只存在于Pandas中。 - deubNippon
不要太快感谢我!经过第二次检查,它可能无法正常工作。但在这种情况下,您可能希望将系列对象保留在Python列表中。 - jme
好的,谢谢你的尝试,但实际上它并没有起作用。不幸的是,我确实需要一个np.array。 - deubNippon
如果目标是将其转换为Numpy数组表示,则可以查看pandas.Series.as_matrixpandas.DataFrame.values - MANU

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