I have a pandas dataframe that I convert to numpy array as follows:
df.values
which gives the following output:
array([[2],
       [0],
       [1],
       ..., 
       [0],
       [1],
       [0]], dtype=int64)
However I want to obtain the list as follows:
[0, 2, 3]
Any idea how to do this?
To convert Pandas DataFrame to List in Python, use the df. values(). tolist() function. Pandas series can be converted to a list using tolist() or type casting method.
The short answer is No - dataframes are not lists of lists.
tolist() to get a list of a specified column. From the dataframe, we select the column “Name” using a [] operator that returns a Series object. Next, we will use the function Series. to_list() provided by the Series class to convert the series object and return a list.
The command to convert Dataframe to list is pd. DataFrame. values. tolist().
Maybe you can use iloc or loc for selecting column and then tolist:
print df
   a
0  2
1  0
2  1
3  0
4  1
5  0
print df.values
[[2]
 [0]
 [1]
 [0]
 [1]
 [0]]
print df.iloc[:, 0].tolist()
[2, 0, 1, 0, 1, 0]
Or maybe:
print df.values.tolist()
[[2L], [0L], [1L], [0L], [1L], [0L]]
print df.iloc[:, 0].values.tolist()
[2L, 0L, 1L, 0L, 1L, 0L]
print df.loc[:, 'a'].tolist()
[2, 0, 1, 0, 1, 0]
print df['a'].tolist()
[2, 0, 1, 0, 1, 0]
But maybe you need flatten:
print df.values.flatten()
[2 0 1 0 1 0]
print df.iloc[:, 0].values.flatten()
[2 0 1 0 1 0]
                        Looks like you have a dataframe with one column and several rows. Remember that this is a two dimensional array, you have to slice the first column then list the values within that column.
This should do it:
df[0].values.tolist()
df[0] - This selects all values in the first column.  For the second column you'd use df[1] third df[2] and so on.
You can tell the shape of your dataframe by running df.shape.  This will tell you how many rows and columns exist in your dataframe e.g. (9,1) which means 9 rows and 1 column
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With