Pandas: Split a given dataframe into groups and display target column as a list of unique values
Write a Pandas program to split a given dataframe into groups and display target column as a list of unique values.
Test Data:
id type book 0 A 1 Math 1 A 1 Math 2 A 1 English 3 A 1 Physics 4 A 2 Math 5 A 2 English 6 B 1 Physics 7 B 1 English 8 B 1 Physics 9 B 2 English 10 B 2 English
Sample Solution:
Python Code :
import pandas as pd
df = pd.DataFrame( {'id' : ['A','A','A','A','A','A','B','B','B','B','B'],
'type' : [1,1,1,1,2,2,1,1,1,2,2],
'book' : ['Math','Math','English','Physics','Math','English','Physics','English','Physics','English','English']})
print("Original DataFrame:")
print(df)
new_df = df[['id', 'type', 'book']].drop_duplicates()\
.groupby(['id','type'])['book']\
.apply(list)\
.reset_index()
new_df['book'] = new_df.apply(lambda x: (','.join([str(s) for s in x['book']])), axis = 1)
print("\nList all unique values in a group:")
print(new_df)
Sample Output:
Original DataFrame: id type book 0 A 1 Math 1 A 1 Math 2 A 1 English 3 A 1 Physics 4 A 2 Math 5 A 2 English 6 B 1 Physics 7 B 1 English 8 B 1 Physics 9 B 2 English 10 B 2 English List all unique values in a group: id type book 0 A 1 Math,English,Physics 1 A 2 Math,English 2 B 1 Physics,English 3 B 2 English
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to split a given dataframe into groups with multiple aggregations.
Next: Write a Pandas program to split the following dataframe into groups and calculate quarterly purchase amount.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