Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

count occurrences with dataframe?

I have following Dataframe:

               fk  name
0              105  Coca-Cola1 
1              105  Coca-Cola1
2              106  Coca-Cola2
3              115  Coca-Cola5
4              115  Coca-Cola5
5              115  Coca-Cola5
6              108  Coca-Cola8
7              105  Coca-Cola1

I want to count frequency of occurrences:

[[105, Coca-Cola1, 3],
 [106, Coca-Cola2, 1],
 [115, Coca-Cola5, 3],
 [108, Coca-Cola8, 1]]

Any idea how to get so ?

like image 249
Night Walker Avatar asked Nov 22 '25 08:11

Night Walker


1 Answers

You can use groupby with aggregating size, then reset_index and last convert to numpy array by DataFrame.values with numpy.ndarray.tolist:

df = df.groupby(['fk','name']).size().reset_index().values.tolist()
print (df)
[[105, 'Coca-Cola1', 3], 
 [106, 'Coca-Cola2', 1], 
 [108, 'Coca-Cola8', 1], 
 [115, 'Coca-Cola5', 3]]

If is order important add parameter sort=False to groupby:

df = df.groupby(['fk','name'], sort=False).size().reset_index().values.tolist()
print (df)
[[105, 'Coca-Cola1', 3], 
 [106, 'Coca-Cola2', 1], 
 [115, 'Coca-Cola5', 3], 
 [108, 'Coca-Cola8', 1]]
like image 137
jezrael Avatar answered Nov 24 '25 21:11

jezrael



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!