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