Pandas Data Series: Convert Series of lists to one Series
Write a Pandas program to convert Series of lists to one Series.
Sample Solution :
Python Code :
import pandas as pd
s = pd.Series([
['Red', 'Green', 'White'],
['Red', 'Black'],
['Yellow']])
print("Original Series of list")
print(s)
s = s.apply(pd.Series).stack().reset_index(drop=True)
print("One Series")
print(s)
Sample Output:
Original Series of list 0 [Red, Green, White] 1 [Red, Black] 2 [Yellow] dtype: object One Series 0 Red 1 Green 2 White 3 Red 4 Black 5 Yellow dtype: object
Explanation:
s = pd.Series([ ['Red', 'Green', 'White'], ['Red', 'Black'], ['Yellow']]) : This line creates a Pandas Series object 's' containing a sequence of three lists of strings.
s = s.apply(pd.Series).stack().reset_index(drop=True)
In the above code:
s.apply(pd.Series): Applies the pd.Series() constructor to each element of the Pandas Series object 's' using the .apply() method. This converts each list element into a separate Pandas Series object with one row per element.
Output: 0 1 2 0 Red Green White 1 Red Black NaN 2 Yellow NaN NaN s.apply(pd.Series).stack(): The .stack() method is then applied to the resulting object. The resulting object will have a hierarchical index with the original index and a secondary index for each element of the original lists. Output: 0 0 Red 1 Green 2 White 1 0 Red 1 Black 2 0 Yellow dtype: object s.apply(pd.Series).stack().reset_index(drop=True): Finally the .reset_index() method with the 'drop' parameter set to True is then applied to reset the index of the Series object 's' and drop the old index. Output: 0 Red 1 Green 2 White 3 Red 4 Black 5 Yellow dtype: object
Python-Pandas Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to convert a given Series to an array.
Next: Write a Pandas program to sort a given Series.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics