Back

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

I have a data frame that looks like this:

company  Amazon  Apple  Yahoo

name

A             0    130      0

C           173      0      0

Z             0      0    150

It was created using this code:

import pandas as pd

df = pd.DataFrame({'name' : ['A', 'Z','C'],

                   'company' : ['Apple', 'Yahoo','Amazon'],

                   'height' : [130, 150,173]})

df = df.pivot(index="name", columns="company", values="height").fillna(0)

What I want to do is to sort the row (with index name) according to a predefined list ["Z", "C", "A"]. Resulting in this :

company  Amazon  Apple  Yahoo

name

Z             0      0    150

C           173      0      0

A             0    130      0

How can I achieve that?

1 Answer

0 votes
by (41.4k points)
edited by

Set index on predefined order using reindex:

In [14]: df.reindex(["Z", "C", "A"])

Out[14]:

company  Amazon  Apple  Yahoo

Z             0      0    150

C           173      0      0

A             0    130      0

However, Use the below line of code if it's alphabetical order sort_index(ascending=False)

In [12]: df.sort_index(ascending=False)

Out[12]:

company  Amazon  Apple  Yahoo

name

Z             0      0    150

C           173      0      0

A             0    130      0

Like pointed below, you need to assign it to some variable

In [13]: df = df.sort_index(ascending=False)

If you want to learn Python programming language for Data Science then you can watch this complete video tutorial:

Browse Categories

...