w3resource

Pandas Practice Set-1: Sort the entire diamonds DataFrame by the 'carat' Series 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]

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.