37

I have the following data frame just single column.

import pandas as pd tdf = pd.DataFrame({'s1' : [0,1,23.4,10,23]}) 

Currently it has the following shape.

In [54]: tdf.shape Out[54]: (5, 1) 

How can I convert it to a Series or a numpy vector so that the shape is simply (5,)

0

1 Answer 1

50

You can simply index the series you want. Example -

tdf['s1'] 

Demo -

In [24]: tdf = pd.DataFrame({'s1' : [0,1,23.4,10,23]}) In [25]: tdf['s1'] Out[25]: 0 0.0 1 1.0 2 23.4 3 10.0 4 23.0 Name: s1, dtype: float64 In [26]: tdf['s1'].shape Out[26]: (5,) 

If you want the values in the series as numpy array, you can use .values accessor , Example -

In [27]: tdf['s1'].values Out[27]: array([ 0. , 1. , 23.4, 10. , 23. ]) 
Sign up to request clarification or add additional context in comments.

4 Comments

or perhaps assign the series to a numpy array for further manipulation, ie. np.asarray(tdf['s1'])
Yea, but I think tdf['s1'].values would be cleaner.
This can have the following error stackoverflow.com/questions/39474056/…
If you wish to avoid reference to the column name, you can alternatively do tdf.iloc[:,0] to get the leftmost column, tdf.iloc[:,1] for the next one...

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.