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.
Go to:
PREV : Sort the 'price' Series in Descending Order.
NEXT : Filter Rows with Carat Weight at Least 0.3.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
