# Pandas Series sorting: A step by step Guide with examples

In this blog post, we will walk through a step-by-step guide on sorting Pandas Series, accompanied by clear examples to help you master this essential skill.

## Importing Pandas

Before we dive into sorting Pandas Series, make sure you have the Pandas library installed. If not, install it using:

``````

pip install pandas

``````

Next, import Pandas in your script or Jupyter Notebook:

``````

import pandas as pd

``````

## Creating a Pandas Series

For the purpose of this guide, let's create a simple Pandas Series:

``````

import pandas as pd

data = {'A': 30, 'B': 20, 'C': 25, 'D': 15}
series = pd.Series(data)
print("Original Series:")
print(series)

``````

### output:

``````

Original Series:
A    30
B    20
C    25
D    15
dtype: int64
``````

## Sorting in Ascending Order

To sort the Pandas Series in ascending order, use the sort_values() method:

``````

import pandas as pd

data = {'A': 30, 'B': 20, 'C': 25, 'D': 15}
series= pd.Series(data)

sorted_series_asc = series.sort_values()
print("\nSorted Series (Ascending Order):")
print(sorted_series_asc)
``````

### output:

``````
Sorted Series (Ascending Order):
D    15
B    20
C    25
A    30
dtype: int64
``````

## Sorting in Descending Order

Conversely, to sort the Series in descending order, set the ascending parameter to False:

``````
import pandas as pd

data = {'A': 30, 'B': 20, 'C': 25, 'D': 15}
series= pd.Series(data)

sorted_series_desc = series.sort_values(ascending=False)
print("\nSorted Series (Descending Order):")
print(sorted_series_desc)
``````

### output:

``````

Sorted Series (Descending Order):
A    30
C    25
B    20
D    15
dtype: int64
``````

## Sorting by Index

If you want to sort the Series based on the index, use the sort_index() method:

``````

import pandas as pd

data = {'A': 30, 'B': 20, 'C': 25, 'D': 15}
series= pd.Series(data)

sorted_series_by_index = series.sort_index()
print("\nSorted Series by Index:")
print(sorted_series_by_index)

``````

### output:

``````

Sorted Series by Index:
A    30
B    20
C    25
D    15
dtype: int64
``````

## Handling Missing Values

By default, missing values (NaN) are placed at the end of the sorted Series. To change this behavior, use the na_position parameter:

``````

import pandas as pd

data_with_nan = {'A': 30, 'B': 20, 'C': None, 'D': 15}
series_with_nan = pd.Series(data_with_nan)
sorted_series_nan_last = series_with_nan.sort_values(na_position='last')

print("\nSorted Series with NaN at the end:")
print(sorted_series_nan_last)
``````

### output:

``````

Sorted Series with NaN at the end:
D    15.0
B    20.0
A    30.0
C     NaN
dtype: float64
``````

## Custom Sorting

For more complex sorting scenarios, you can provide custom sorting criteria using the key parameter. Here's an example where we sort by the absolute values:

``````

import pandas as pd

# Step 2: Creating a Pandas Series
data = {'A': -30, 'B': 20, 'C': -25, 'D': 15}
series = pd.Series(data)
print("Original Series:")
print(series)

# Step 7: Custom Sorting by Absolute Values
custom_sorted_series = series.sort_values(key=abs)
print("\nCustom Sorted Series by Absolute Values:")
print(custom_sorted_series)
``````

Here, the sort_values() method is used on the Pandas Series (series). The key parameter is set to abs, which means the sorting will be based on the absolute values of the elements in the Series. The resulting sorted Series (custom_sorted_series) is then printed, showing the Series sorted in ascending order based on the absolute values of its elements.

output:

``````

Original Series:
A   -30
B    20
C   -25
D    15
dtype: int64

Custom Sorted Series by Absolute Values:
D    15
B    20
C   -25
A   -30
dtype: int64
``````

## Conclusion:

Sorting Pandas Series is a fundamental skill for anyone working with data in Python. By following this step-by-step guide and exploring the examples provided, you'll be well-equipped to handle various sorting scenarios and efficiently organize your data. Remember, mastering the art of sorting is key to unlocking the full potential of Pandas in your data analysis projects.