I have a data frame like this:
l1 = [1,2,3,1,2,3]
l2 = ['A','A','A','B','B','B']
values = [['Ram', 'Ford', 'Honda', 'Ford'],['Ford', 'Toyota', 'Subaru'],['Ford', 'Ram'],['Volvo', 'Honda', 'Ford'],['Honda', 'Ford', 'Toyota', 'Ford'],['Ram', 'Ford']]
d = {'ID': l1, 'Group': l2, 'Values': values}
df = pd.DataFrame(d)
df
ID Group Values
1 A [Ram, Ford, Honda, Ford]
2 A [Ford, Toyota, Subaru]
3 A [Ford, Ram]
1 B [Volvo, Honda, Ford]
2 B [Honda, Ford, Toyota, Ford]
3 B [Ram, Ford]
I want to group the data such that for every ID, I get the count of every value in every group like this:
ID
Group Value 1 2 3
A Ram 1 0 1
A Ford 2 1 1
A Honda 1 0 0
A Toyota 0 1 0
A Subaru 0 1 0
B Volvo 1 0 0
B Honda 1 1 0
B Ford 1 2 1
B Toyota 0 1 0
B Ram 0 0 1
Can anyone help me with this?