Pandas Series Index Attribute
Pandas Series is a one-dimensional labeled array capable of holding any data type (integers, strings, floats, etc.), with each element having an associated label known as its index. The Series.index attribute in Pandas allows users to get or set the index labels of a Series object, enhancing data accessibility and retrieval efficiency. Example:
import pandas as pd
data = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
# Accessing the index
print("Original Index:", data.index)
# Modifying the index
data.index = ['w', 'x', 'y', 'z']
print("Modified Series:\n", data)
Output
Original Index: Index(['a', 'b', 'c', 'd'], dtype='object') Modified Series: w 10 x 20 y 30 z 40 dtype: int64
Explanation: This code creates a Pandas Series with custom index labels ('a', 'b', 'c', 'd') and retrieves the index using data.index. It then updates the index to ('w', 'x', 'y', 'z').
Syntax
Series.index # Access index labels
Series.index = new_index # Modify index labels
Parameter: This method does not take any parameter.
Returns: Index labels of the Series.
Functionality:
- Retrieves the current index labels of the Series.
- Can be used to set new index labels.
- Supports both unique and duplicate index labels.
- Useful for locating elements efficiently within a Series.
Examples of Pandas Series Index() Attribute
Example 1. Assigning Duplicate Index Labels
Pandas allows assigning duplicate index labels, which can be useful in cases where multiple elements share the same category.
import pandas as pd
series = pd.Series(['New York', 'Chicago', 'Toronto', 'Lisbon'])
# Creating the row axis labels
series.index = ['City 1', 'City 1', 'City 3', 'City 3']
print(series)
Output
City 1 New York City 1 Chicago City 3 Toronto City 3 Lisbon dtype: object
Explanation: Even with duplicate labels ('City 1' and 'City 3' appearing twice), Pandas maintains the Series structure and ensures data integrity.
Example 2. Retrieving Index Labels
The Series.index attribute can also be used to retrieve the current index labels of a Series.
import pandas as pd
Date = ['1/1/2018', '2/1/2018', '3/1/2018', '4/1/2018']
idx_name = ['Day 1', 'Day 2', 'Day 3', 'Day 4']
sr = pd.Series(data = Date,index = idx_name)
print(sr.index)
Output
Index(['Day 1', 'Day 2', 'Day 3', 'Day 4'], dtype='object')
Explanation: The index labels ('Day 1' to 'Day 4') are assigned to a Series and retrieved using series.index.
Example 3. Resetting Index to Default
If needed, we can reset the index to default integer values.
import pandas as pd
Date = ['1/1/2018', '2/1/2018', '3/1/2018', '4/1/2018']
idx_name = ['Day 1', 'Day 2', 'Day 3', 'Day 4']
sr = pd.Series(data = Date, # Series Data
index = idx_name # Index
)
# Resetting index to default
sr.reset_index(drop=True, inplace=True)
print(sr)
Output
0 1/1/2018 1 2/1/2018 2 3/1/2018 3 4/1/2018 dtype: object
Explanation: reset_index(drop=True, inplace=True) removes the custom index and replaces it with the default integer index while modifying the Series in place.