Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (17.6k points)

I am trying to re-index a pandas DataFrame object, like so,

From:

            a   b   c

        0   1   2   3

        1  10  11  12

        2  20  21  22

To :

           b   c

       1   2   3

      10  11  12

      20  21  22

I am going about this as shown below and am getting the wrong answer. Any clues on how to do this?

>>> col = ['a','b','c']

>>> data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col)

>>> data

    a   b   c

0   1   2   3

1  10  11  12

2  20  21  22

>>> idx2 = data.a.values

>>> idx2

array([ 1, 10, 20], dtype=int64)

>>> data2 = DataFrame(data,index=idx2,columns=col[1:])

>>> data2

     b   c

1   11  12

10 NaN NaN

20 NaN NaN

Any idea why this is happening?

1 Answer

0 votes
by (41.4k points)

Use set_index method:

In : col = ['a','b','c']

In : data = DataFrame([[1,2,3],[10,11,12],[20,21,22]],columns=col)

In : data

Output:

    a   b c

0   1 2   3

1  10 11  12

2  20 21  22

In : data2 = data.set_index('a')

In : data2

Output:

     b   c

a

1    2 3

10  11 12

20  21 22

If you want to learn more about Pandas then visit this Python Course designed by the industrial experts.

Browse Categories

...