How To Do Group By And Take Count Of One Column Divide By Count Of Unique Of Second Column Of Data Frame In Python Pandas?
I have panda data frame with 4 column say 'col1', 'col2', 'col3' and 'col4' now I want to group by col1 and col2 and want to take aggregate say below. Count(col3)/(Count(unique col
Solution 1:
It seems you need aggregate
by size
and nunique
and then div
output columns:
df = pd.DataFrame({'col1':[1,1,1],
'col2':[4,4,6],
'col3':[7,7,9],
'col4':[3,3,5]})
print (df)
col1 col2 col3 col4
0 1 4 7 3
1 1 4 7 3
2 1 6 9 5
df1 = df.groupby(['col1','col2']).agg({'col3':'size','col4':'nunique'})
df1['result_col'] = df1['col3'].div(df1['col4'])
print (df1)
col4 col3 result_col
col1 col2
1 4 1 2 2.0
6 1 1 1.0
Post a Comment for "How To Do Group By And Take Count Of One Column Divide By Count Of Unique Of Second Column Of Data Frame In Python Pandas?"