w3resource

Pandas: Reverse order of a given DataFrame

Pandas: DataFrame Exercise-65 with Solution

Write a Pandas program to reverse order (rows, columns) of a given DataFrame.

Sample Solution :

Python Code :

import pandas as pd
df = pd.DataFrame({'W':[68,75,86,80,66],'X':[78,85,96,80,86], 'Y':[84,94,89,83,86],'Z':[86,97,96,72,83]});
print("Original DataFrame")
print(df)
print("\nReverse column order:")
print(df.loc[:, ::-1])
print("\nReverse row order:")
print(df.loc[::-1])
print("\nReverse row order and reset index:")
print(df.loc[::-1].reset_index(drop = True))

Sample Output:

Original DataFrame
    W   X   Y   Z
0  68  78  84  86
1  75  85  94  97
2  86  96  89  96
3  80  80  83  72
4  66  86  86  83

Reverse column order:
    Z   Y   X   W
0  86  84  78  68
1  97  94  85  75
2  96  89  96  86
3  72  83  80  80
4  83  86  86  66

Reverse row order:
    W   X   Y   Z
4  66  86  86  83
3  80  80  83  72
2  86  96  89  96
1  75  85  94  97
0  68  78  84  86

Reverse row order and reset index:
    W   X   Y   Z
0  66  86  86  83
1  80  80  83  72
2  86  96  89  96
3  75  85  94  97
4  68  78  84  86

Python-Pandas Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Pandas program to add a prefix or suffix to all columns of a given DataFrame.
Next: Write a Pandas program to select columns by data type of a given DataFrame.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

Python: Tips of the Day

Inserting if statements using conditional list comprehensions:

x = [1, 2, 3, 4, 5, 6]
result = []
for idx in range(len(x)):
    if x[idx] % 2 == 0:
        result.append(x[idx] * 2)
    else:
        result.append(x[idx])
result

Output:

[1, 4, 3, 8, 5, 12]
[(element * 2 if element % 2 == 0 else element) for element in x]

Output:

[1, 4, 3, 8, 5, 12]
[element * 2 for element in x if element % 2 == 0]

Output:

[4, 8, 12]