# count occurrences of one variable grouped by another python

>>> data = pd.DataFrame({'user_id' : ['a1', 'a1', 'a1', 'a2','a2','a2','a3','a3','a3'], 'product_id' : ['p1','p1','p2','p1','p1','p1','p2','p2','p3']}) >>> count_series = data.groupby(['user_id', 'product_id']).size() >>> count_series user_id product_id a1 p1 2 p2 1 a2 p1 3 a3 p2 2 p3 1 dtype: int64 >>> new_df = count_series.to_frame(name = 'size').reset_index() >>> new_df user_id product_id size 0 a1 p1 2 1 a1 p2 1 2 a2 p1 3 3 a3 p2 2 4 a3 p3 1 >>> new_df['size'] 0 2 1 1 2 3 3 2 4 1 Name: size, dtype: int64

**Here is what the above code is Doing:**

1. Create a dataframe with the data you want to group by.

2. Group the dataframe by the columns you want to group by.

3. Use the size() function to get the count of each group.

4. Convert the series to a dataframe.

5. Reset the index of the dataframe.

6. Use the column you want to get the values from.