w3resource

Pandas Practice Set-1: Sort the entire diamonds DataFrame by the 'carat' Series in ascending and descending order


14. Sort Entire DataFrame by 'carat' in Ascending and Descending Order

Write a Pandas program to sort the entire diamonds DataFrame by the 'carat' Series in ascending and descending order.

Sample Solution :

Python Code :

import pandas as pd
diamonds = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/diamonds.csv')
print("Original Dataframe:")
print(diamonds.head())
print("\nSort the entire diamonds DataFrame by the 'carat' Series in ascending order")
result = diamonds.sort_values('carat')
print(result)
print("\nSort the entire diamonds DataFrame by the 'carat' Series in descending  order")
result = diamonds.sort_values('carat', ascending=False)
print(result)

Sample Output:

Original Dataframe:
   carat      cut color clarity  depth  table  price     x     y     z
0   0.23    Ideal     E     SI2   61.5   55.0    326  3.95  3.98  2.43
1   0.21  Premium     E     SI1   59.8   61.0    326  3.89  3.84  2.31
2   0.23     Good     E     VS1   56.9   65.0    327  4.05  4.07  2.31
3   0.29  Premium     I     VS2   62.4   58.0    334  4.20  4.23  2.63
4   0.31     Good     J     SI2   63.3   58.0    335  4.34  4.35  2.75

Sort the entire diamonds DataFrame by the 'carat’ Series in ascending order
       carat        cut color clarity  ...   price      x      y     z
31593   0.20    Premium     E     VS2  ...     367   3.81   3.78  2.32
31597   0.20      Ideal     D     VS2  ...     367   3.81   3.77  2.33
31596   0.20    Premium     F     VS2  ...     367   3.73   3.71  2.33
31595   0.20      Ideal     E     VS2  ...     367   3.86   3.84  2.30
31594   0.20    Premium     E     VS2  ...     367   3.84   3.80  2.28
31600   0.20    Premium     D     VS2  ...     367   3.73   3.68  2.31
31592   0.20    Premium     E     VS2  ...     367   3.81   3.78  2.24
31591   0.20    Premium     E     VS2  ...     367   3.79   3.77  2.26
31601   0.20    Premium     D     VS2  ...     367   3.77   3.72  2.31
31598   0.20  Very Good     E     VS2  ...     367   3.74   3.71  2.36
14      0.20    Premium     E     SI2  ...     345   3.79   3.75  2.27
31599   0.20      Ideal     E     VS2  ...     367   3.76   3.73  2.33
38277   0.21    Premium     D     VS2  ...     386   3.85   3.81  2.32
1       0.21    Premium     E     SI1  ...     326   3.89   3.84  2.31
43989   0.21    Premium     E     SI2  ...     394   3.84   3.82  2.37
38279   0.21    Premium     D     VS2  ...     386   3.96   3.93  2.30
38278   0.21    Premium     D     VS2  ...     386   3.89   3.86  2.29
38273   0.21  Very Good     E     VS2  ...     386   3.82   3.78  2.40
38274   0.21    Premium     E     VS2  ...     386   3.87   3.83  2.33
38275   0.21    Premium     E     VS2  ...     386   3.93   3.89  2.33
38276   0.21    Premium     D     VS2  ...     386   3.82   3.78  2.34
8       0.22       Fair     E     VS2  ...     337   3.87   3.78  2.49
34611   0.22    Premium     F     SI1  ...     470   3.90   3.85  2.39
53      0.22    Premium     E     VS2  ...     404   3.93   3.89  2.41
54      0.22    Premium     D     VS2  ...     404   3.91   3.88  2.31
12      0.22    Premium     F     SI1  ...     342   3.88   3.84  2.33
23363   0.23      Ideal     E     VS2  ...     423   3.88   3.92  2.44
33956   0.23  Very Good     E    VVS2  ...     465   3.95   4.01  2.43
6720    0.23  Very Good     D     VS2  ...     577   4.02   4.07  2.43
48985   0.23      Ideal     F    VVS2  ...     538   3.96   3.99  2.44
     ...        ...   ...     ...  ...     ...    ...    ...   ...
27517   3.01       Good     I     SI2  ...   18242   9.06   9.01  5.77
27516   3.01       Fair     I     SI2  ...   18242   8.99   8.94  5.90
27515   3.01       Fair     I     SI2  ...   18242   8.99   8.94  5.90
26744   3.01      Ideal     J      I1  ...   16538   8.99   8.93  5.86
25460   3.01    Premium     G     SI2  ...   14220   9.44   9.37  5.62
27514   3.01    Premium     I     SI2  ...   18242   9.36   9.31  5.62
27684   3.01    Premium     J     SI2  ...   18710   9.35   9.22  5.64
26467   3.01      Ideal     J     SI2  ...   16037   9.25   9.20  5.69
22741   3.01       Fair     H      I1  ...   10761   9.54   9.38  5.31
27685   3.01    Premium     J     SI2  ...   18710   9.41   9.32  5.59
19339   3.01    Premium     I      I1  ...    8040   9.10   8.97  5.67
27649   3.01       Good     H     SI2  ...   18593   9.44   9.38  5.42
22540   3.02       Fair     I      I1  ...   10577   9.11   9.02  5.91
26100   3.04  Very Good     I     SI2  ...   15354   9.14   9.07  5.75
27638   3.04    Premium     I     SI2  ...   18559   9.51   9.46  5.62
22428   3.05    Premium     E      I1  ...   10453   9.26   9.25  5.66
21758   3.11       Fair     J      I1  ...    9823   9.15   9.02  5.98
24297   3.22      Ideal     I      I1  ...   12545   9.49   9.42  5.92
24131   3.24    Premium     H      I1  ...   12300   9.44   9.40  5.85
26431   3.40       Fair     D      I1  ...   15964   9.42   9.34  6.27
24328   3.50      Ideal     H      I1  ...   12587   9.65   9.59  6.03
27679   3.51    Premium     J     VS2  ...   18701   9.66   9.63  6.03
23644   3.65       Fair     H      I1  ...   11668   9.53   9.48  6.38
26534   3.67    Premium     I      I1  ...   16193   9.86   9.81  6.13
26444   4.00  Very Good     I      I1  ...   15984  10.01   9.94  6.31
25999   4.01    Premium     J      I1  ...   15223  10.02   9.94  6.24
25998   4.01    Premium     I      I1  ...   15223  10.14  10.10  6.17
27130   4.13       Fair     H      I1  ...   17329  10.00   9.85  6.43
27630   4.50       Fair     J      I1  ...   18531  10.23  10.16  6.72
27415   5.01       Fair     J      I1  ...   18018  10.74  10.54  6.98

[53940 rows x 10 columns]

Sort the entire diamonds DataFrame by the ‘carat’ Series in descending  order
       carat        cut color clarity  ...   price      x      y     z
27415   5.01       Fair     J      I1  ...   18018  10.74  10.54  6.98
27630   4.50       Fair     J      I1  ...   18531  10.23  10.16  6.72
27130   4.13       Fair     H      I1  ...   17329  10.00   9.85  6.43
25999   4.01    Premium     J      I1  ...   15223  10.02   9.94  6.24
25998   4.01    Premium     I      I1  ...   15223  10.14  10.10  6.17
26444   4.00  Very Good     I      I1  ...   15984  10.01   9.94  6.31
26534   3.67    Premium     I      I1  ...   16193   9.86   9.81  6.13
23644   3.65       Fair     H      I1  ...   11668   9.53   9.48  6.38
27679   3.51    Premium     J     VS2  ...   18701   9.66   9.63  6.03
24328   3.50      Ideal     H      I1  ...   12587   9.65   9.59  6.03
26431   3.40       Fair     D      I1  ...   15964   9.42   9.34  6.27
24131   3.24    Premium     H      I1  ...   12300   9.44   9.40  5.85
24297   3.22      Ideal     I      I1  ...   12545   9.49   9.42  5.92
21758   3.11       Fair     J      I1  ...    9823   9.15   9.02  5.98
22428   3.05    Premium     E      I1  ...   10453   9.26   9.25  5.66
26100   3.04  Very Good     I     SI2  ...   15354   9.14   9.07  5.75
27638   3.04    Premium     I     SI2  ...   18559   9.51   9.46  5.62
22540   3.02       Fair     I      I1  ...   10577   9.11   9.02  5.91
22741   3.01       Fair     H      I1  ...   10761   9.54   9.38  5.31
27514   3.01    Premium     I     SI2  ...   18242   9.36   9.31  5.62
27649   3.01       Good     H     SI2  ...   18593   9.44   9.38  5.42
25460   3.01    Premium     G     SI2  ...   14220   9.44   9.37  5.62
21862   3.01    Premium     F      I1  ...    9925   9.24   9.13  5.73
27515   3.01       Fair     I     SI2  ...   18242   8.99   8.94  5.90
27685   3.01    Premium     J     SI2  ...   18710   9.41   9.32  5.59
26467   3.01      Ideal     J     SI2  ...   16037   9.25   9.20  5.69
27684   3.01    Premium     J     SI2  ...   18710   9.35   9.22  5.64
27517   3.01       Good     I     SI2  ...   18242   9.06   9.01  5.77
19339   3.01    Premium     I      I1  ...    8040   9.10   8.97  5.67
27518   3.01       Good     I     SI2  ...   18242   9.06   9.01  5.77
     ...        ...   ...     ...  ...     ...    ...    ...   ...
37278   0.23  Very Good     G    VVS1  ...     484   3.95   3.98  2.46
37277   0.23  Very Good     G    VVS1  ...     484   3.92   3.96  2.42
37276   0.23  Very Good     F     VS1  ...     483   3.89   3.86  2.45
37604   0.23  Very Good     D    VVS2  ...     485   3.86   3.89  2.46
54      0.22    Premium     D     VS2  ...     404   3.91   3.88  2.31
34611   0.22    Premium     F     SI1  ...     470   3.90   3.85  2.39
8       0.22       Fair     E     VS2  ...     337   3.87   3.78  2.49
53      0.22    Premium     E     VS2  ...     404   3.93   3.89  2.41
12      0.22    Premium     F     SI1  ...     342   3.88   3.84  2.33
38273   0.21  Very Good     E     VS2  ...     386   3.82   3.78  2.40
38274   0.21    Premium     E     VS2  ...     386   3.87   3.83  2.33
38275   0.21    Premium     E     VS2  ...     386   3.93   3.89  2.33
38276   0.21    Premium     D     VS2  ...     386   3.82   3.78  2.34
38277   0.21    Premium     D     VS2  ...     386   3.85   3.81  2.32
1       0.21    Premium     E     SI1  ...     326   3.89   3.84  2.31
38278   0.21    Premium     D     VS2  ...     386   3.89   3.86  2.29
38279   0.21    Premium     D     VS2  ...     386   3.96   3.93  2.30
43989   0.21    Premium     E     SI2  ...     394   3.84   3.82  2.37
31599   0.20      Ideal     E     VS2  ...     367   3.76   3.73  2.33
31598   0.20  Very Good     E     VS2  ...     367   3.74   3.71  2.36
31597   0.20      Ideal     D     VS2  ...     367   3.81   3.77  2.33
31600   0.20    Premium     D     VS2  ...     367   3.73   3.68  2.31
31595   0.20      Ideal     E     VS2  ...     367   3.86   3.84  2.30
31594   0.20    Premium     E     VS2  ...     367   3.84   3.80  2.28
31593   0.20    Premium     E     VS2  ...     367   3.81   3.78  2.32
31592   0.20    Premium     E     VS2  ...     367   3.81   3.78  2.24
31591   0.20    Premium     E     VS2  ...     367   3.79   3.77  2.26
31601   0.20    Premium     D     VS2  ...     367   3.77   3.72  2.31
14      0.20    Premium     E     SI2  ...     345   3.79   3.75  2.27
31596   0.20    Premium     F     VS2  ...     367   3.73   3.71  2.33

[53940 rows x 10 columns]

For more Practice: Solve these Related Problems:

  • Write a Pandas program to sort the diamonds DataFrame by the 'carat' column in ascending order and display the result.
  • Write a Pandas program to sort the diamonds DataFrame by 'carat' in descending order and verify by printing the first 10 rows.
  • Write a Pandas program to sort the DataFrame by 'carat' in both orders and then merge the results into a single DataFrame for comparison.
  • Write a Pandas program to sort by 'carat' first in ascending order then in descending order, and finally compute the difference in the top values.

Python Code Editor:

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

Previous: Write a pandas program to sort the 'price' Series in descending order (returns a Series) of diamonds Dataframe.
Next: Write a pandas program to filter the DataFrame rows to only show carat weight at least 0.3.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.