redrubia
redrubia

Reputation: 2366

Make Tuples from Specific Pandas Columns

I have a pandas dataframe, e.g.

   one  two  three  four  five
0    1    2      3     4     5
1    1    1      1     1     1

What I would like is to be able to convert only a select number of columns to a list, such that we obtain:

[[1,2],[1,1]]

This is the rows 0,1, where we are selecting columns one and two.

Similarly if we selected columns one, two, four:

[[1,2,4],[1,1,1]]

Ideally I would like to avoid iteration of rows as it is slow!

Upvotes: 0

Views: 1119

Answers (2)

redrubia
redrubia

Reputation: 2366

So I worked out how to do it.

Firstly we select the columns we would like the values from:

 y = x[['one','two']]

This gives us a subset df.

Now we can choose the values:

> y.values

array([[1, 2],
       [1, 1]])

Upvotes: 2

Andy Hayden
Andy Hayden

Reputation: 375445

You can select just those columns with:

In [11]: df[['one', 'two']]
Out[11]:
   one  two
0    1    2
1    1    1

and get the list of lists from the underlying numpy array using tolist:

In [12]: df[['one', 'two']].values.tolist()
Out[12]: [[1, 2], [1, 1]]

In [13]: df[['one', 'two', 'four']].values.tolist()
Out[13]: [[1, 2, 4], [1, 1, 1]]

Note: this should never really be necessary unless this is your end game... it's going to be much more efficient to do the work inside pandas or numpy.

Upvotes: 7

Related Questions