I have a 2D Numpy array that I would like to put in a pandas Series (not a DataFrame):
>>> import pandas as pd
>>> import numpy as np
>>&
Well, you can use the numpy.ndarray.tolist
function, like so:
>>> a = np.zeros((5,2))
>>> a
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> a.tolist()
[[0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]]
>>> pd.Series(a.tolist())
0 [0.0, 0.0]
1 [0.0, 0.0]
2 [0.0, 0.0]
3 [0.0, 0.0]
4 [0.0, 0.0]
dtype: object
EDIT:
A faster way to accomplish a similar result is to simply do pd.Series(list(a))
. This will make a Series of numpy arrays instead of Python lists, so should be faster than a.tolist
which returns a list of Python lists.