A series in Python is a kind of one-dimensional array of any data type that we specified in the pandas module. The only difference you can find is that each value in a pandas series is associated with the index. The default index value of it is from 0 to number – 1, or you can specify your own index values.
The following long list of examples helps you understand this Python pandas Series, how to access them, and alter the items, indexes, columns, etc.
Python pandas Series Examples
It is a simple Python pandas Series example. As you can see, it has assigned the default index values from 0 to 3 (4 – 1).
import pandas as pd from pandas import Series arr = Series([15, 35, 55, 75]) print(arr)
0 15
1 35
2 55
3 75
dtype: int64
Python Series Values and Index
The Series has two attributes such as values and index. You can use these attributes to get information about them.
- values: This returns the array of actual data or elements in it.
- index: As the name suggests, this object returns the index values.
arr = Series([12, 32, 52, -15, 122]) print(arr) print('\nValues in this Array : ',arr.values) print('Index Values of this Array : ',arr.index)
Python pandas Series Index
You can use the index attribute to create your own index or assign your own index to the data. It is the handy and best way to identify the data for future analysis.
arr = Series([25, 50, 75, 100, 125], index = [2, 4, 6, 8, 10]) print(arr) print('\nValues in this Array : ',arr.values) print('Index Values of this Array : ',arr.index)
Series Index output
2 25
4 50
6 75
8 100
10 125
dtype: int64
Values in this Array : [ 25 50 75 100 125]
Index Values of this Array : Int64Index([2, 4, 6, 8, 10], dtype='int64')
Let me use Alphabets as the index values.
import pandas as pd from pandas import Series arr = Series([2, 33, 66, 70, 15], index = ['a', 'e', 'i', 'o', 'u']) arr arr.index
If you use an external file to save this series code, use the below code.
import pandas as pd from pandas import Series arr = Series([2, 33, 66, 70, 15], index = ['a', 'e', 'i', 'o', 'u']) print(arr) print('\nValues in this Array : ',arr.values) print('Index Values of this Array : ',arr.index)
a 2
e 33
i 66
o 70
u 15
dtype: int64
Values in this Array : [ 2 33 66 70 15]
Index Values of this Array : Index(['a', 'e', 'i', 'o', 'u'], dtype='object')
Create a Python Series using arange
You can also use the arange function available in the Numpy module to create a pandas series of consecutive numbers from 0 to n-1.
import pandas as pd import numpy as np from pandas import Series arr = Series(np.arange(6)) print(arr) # arr # Here, we are assigning the index names. arr1 = Series(np.arange(6), index = ['a', 'b', 'c', 'd', 'e', 'f']) print(arr1) #arr1
0 0
1 1
2 2
3 3
4 4
5 5
dtype: int64
a 0
b 1
c 2
d 3
e 4
f 5
dtype: int64
Alter Python pandas Series Index
The index function does not only allow you to display the index items, but you can also alter it as well. This example changes the actual index items and places the integer values as the index.
import pandas as pd from pandas import Series new_arr = Series([2, 33, 66, 70, 15], index = ['a', 'e', 'i', 'o', 'u']) print(new_arr) print('\nValues in this Array : ',new_arr.values) print('Index Values of this Array : ',new_arr.index) print(' ') # Assigning New Index Values new_arr.index = [1, 2, 3, 4, 5] print(new_arr) print('\nValues in this Array : ',new_arr.values) print('Index Values of this Array : ',new_arr.index)
Alter Index output
a 2
e 33
i 66
o 70
u 15
dtype: int64
Values in this Array : [ 2 33 66 70 15]
Index Values of this Array : Index(['a', 'e', 'i', 'o', 'u'], dtype='object')
1 2
2 33
3 66
4 70
5 15
dtype: int64
Values in this Array : [ 2 33 66 70 15]
Index Values of this Array : Int64Index([1, 2, 3, 4, 5], dtype='int64')
Create a Python Series from Dictionary
Python also allows you to create a Series for a dictionary. When you use a dictionary, values become series data, and dictionary keys act as an index.
import pandas as pd from pandas import Series f_dict = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000} print('Dictionary Items') print(f_dict) arr = Series(f_dict) print('\nArray Items') print(arr)
Dictionary to pandas Series output
Dictionary Items
{'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000}
Array Items
apples 500
kiwi 20
oranges 100
cherries 6000
dtype: int64
We can also change the order of the index values while converting a dictionary to a Series.
import pandas as pd from pandas import Series f_dict = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000} new_list = ['apples', 'cherries', 'kiwi', 'oranges'] arr = Series(f_dict, index = new_list) print('Array Items') print(arr)
Converting a dictionary and changing the order output
Array Items
apples 500
cherries 6000
kiwi 20
oranges 100
dtype: int64
What if we add an index that doesn’t exist in the actual dictionary key, and obviously, it won’t have any value associated with it.
import pandas as pd from pandas import Series f_dict = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000} new_list = ['apples', 'banana', 'cherries', 'kiwi', 'oranges'] arr = Series(f_dict, index = new_list) print('Array Items') print(arr)
From the below object screenshot, you can see it was returning NaN as the value for that index or key
Array Items
apples 500.0
banana NaN
cherries 6000.0
kiwi 20.0
oranges 100.0
dtype: float64
series attributes
The Python Series Object has an important attribute called name. You can use this attribute to assign a name for both the data and the indexes.
import pandas as pd from pandas import Series f_dict = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000} arr = Series(f_dict) print(arr) print('\nAssigning Names') arr.name = 'No of Items' arr.index.name = 'Fruits' print(arr)
attributes output
apples 500
kiwi 20
oranges 100
cherries 6000
dtype: int64
Assigning Names
Fruits
apples 500
kiwi 20
oranges 100
cherries 6000
Name: No of Items, dtype: int64
Accessing Python Series Items
Like numpy Arrays, we can use the index position or index number to access an item from it.
import pandas as pd from pandas import Series arr = Series([22, 44, 66, 88, 108]) arr
Access the Item at index positions 0, 2, and 4.
arr[0] arr[2] arr[4]
Creating a new or selecting a set of values from an existing one.
arr[[1, 3, 0, 4]]
Accessing items output
>>> import pandas as pd
>>> from pandas import Series
>>> arr = Series([22, 44, 66, 88, 108])
>>> arr
0 22
1 44
2 66
3 88
4 108
dtype: int64
>>> arr[0]
22
>>> arr[2]
66
>>> arr[4]
108
>>> arr[[1, 3, 0, 4]]
1 44
3 88
0 22
4 108
dtype: int64
>>>
We are accessing the data in it with custom index values. For this, we used Alphabet characters as the index items.
import pandas as pd from pandas import Series arr = Series([2, 4, -6, 8, -10, 12], index = ['a', 'e', 'i', 'o', 'u', 'z']) arr arr['a'] arr['u'] arr[['a', 'o', 'z', 'e']]
>>> import pandas as pd
>>> from pandas import Series
>>> arr = Series([2, 4, -6, 8, -10, 12], index = ['a', 'e', 'i', 'o', 'u', 'z'])
>>> arr
a 2
e 4
i -6
o 8
u -10
z 12
dtype: int64
>>> arr['a']
2
>>> arr['u']
-10
>>> arr[['a', 'o', 'z', 'e']]
a 2
o 8
z 12
e 4
dtype: int64
Python pandas Series in Operator
Before we perform anything on the data, it would be nice if we knew whether the index that we are looking for existed or not. For this in operator demo, we have in operator that can check and returns True, if it exists otherwise, False.
import pandas as pd from pandas import Series arr1 = Series([22, 33, 44, 55], index = ['a', 'b', 'c', 'd']) arr1 'b' in arr1 'c' in arr1 'f' in arr1
>>> import pandas as pd
>>> from pandas import Series
>>> arr1 = Series([22, 33, 44, 55], index = ['a', 'b', 'c', 'd'])
>>> arr1
a 22
b 33
c 44
d 55
dtype: int64
>>> 'b' in arr1
True
>>> 'c' in arr1
True
>>> 'f' in arr1
False
Let me use the Dictionary as an array input and use the in operator.
import pandas as pd from pandas import Series f_dict = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries':6000} arr2 = Series(f_dict) arr2 'kiwi' in arr2 'banana' in arr2 'oranges' in arr2
in operator against it output
>>> import pandas as pd
>>> from pandas import Series
>>> f_dict = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries':6000}
>>> arr2 = Series(f_dict)
>>> arr2
apples 500
kiwi 20
oranges 100
cherries 6000
dtype: int64
>>> 'kiwi' in arr2
True
>>> 'banana' in arr2
False
>>> 'oranges' in arr2
True
Python pandas Series Nulls
Python pandas module has isnull and notnull functions used to identify the Null and returns a Boolean True or False. To demonstrate the isnull and notnull functions, we use the same dictionary we used above.
import pandas as pd from pandas import Series dict_items = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000} f_list = ['apples', 'banana', 'cherries', 'kiwi', 'oranges'] arr = Series(dict_items, index = f_list) arr
It returns True if it is NULL or NA otherwise, False.
pd.isnull(arr) arr.isnull()
It returns False if the value is NaN, Null, or NA; otherwise, True.
pd.notnull(arr) arr.notnull()
pandas isnull, notnull output
>>> import pandas as pd
>>> from pandas import Series
>>> dict_items = {'apples': 500, 'kiwi': 20, 'oranges': 100, 'cherries': 6000}
>>> f_list = ['apples', 'banana', 'cherries', 'kiwi', 'oranges']
>>> arr = Series(dict_items, index = f_list)
>>> arr
apples 500.0
banana NaN
cherries 6000.0
kiwi 20.0
oranges 100.0
dtype: float64
>>> pd.isnull(arr)
apples False
banana True
cherries False
kiwi False
oranges False
dtype: bool
>>> arr.isnull()
apples False
banana True
cherries False
kiwi False
oranges False
dtype: bool
>>> pd.notnull(arr)
apples True
banana False
cherries True
kiwi True
oranges True
dtype: bool
>>> arr.notnull()
apples True
banana False
cherries True
kiwi True
oranges True
dtype: bool
Python pandas Series Arithmetic Operations
The Python pandas Series allows you to perform arithmetic operations on its data. You can use any of the operators to perform on all the items. This example shows you the pandas Series arithmetic operations.
import pandas as pd from pandas import Series arr = Series([2, 4, -6, 8, -7], index = ['a', 'e', 'i', 'o', 'u']) arr
Add 3 to each item in it.
arr + 3
Subtracting 2 from items.
arr - 2
We are multiplying each item with 10.
arr * 10
Returns a subset of it whose values are greater than 0.
arr[arr > 0]
Arithmetic Operations output
>>> import pandas as pd
>>> from pandas import Series
>>> arr = Series([2, 4, -6, 8, -7], index = ['a', 'e', 'i', 'o', 'u'])
>>> arr
a 2
e 4
i -6
o 8
u -7
dtype: int64
>>> arr + 3
a 5
e 7
i -3
o 11
u -4
dtype: int64
>>> arr - 2
a 0
e 2
i -8
o 6
u -9
dtype: int64
>>> arr * 10
a 20
e 40
i -60
o 80
u -70
dtype: int64
>>> arr[arr > 0]
a 2
e 4
o 8
dtype: int64
Python Series Mathematical Function
You can use the math function that is supported by the numpy module on it.
from pandas import Series import numpy as np arr = Series([2, 4, -6, 8, -7], index = ['a', 'e', 'i', 'o', 'u']) arr
Calculate the Power Of E
np.exp(arr)
Absolute Positive Value
np.fabs(arr)
The square root of each item in it
np.sqrt(arr)
Mathematical Functions on pandas
>>> import pandas as pd
>>> from pandas import Series
>>> import numpy as np
>>> arr = Series([2, 4, -6, 8, -7], index = ['a', 'e', 'i', 'o', 'u'])
>>> arr
a 2
e 4
i -6
o 8
u -7
dtype: int64
>>> np.exp(arr)
a 7.389056
e 54.598150
i 0.002479
o 2980.957987
u 0.000912
dtype: float64
>>> np.fabs(arr)
a 2.0
e 4.0
i 6.0
o 8.0
u 7.0
dtype: float64
>>> np.sqrt(arr)
a 1.414214
e 2.000000
i NaN
o 2.828427
u NaN
dtype: float64