I have a table that's in the following format
col1 = pd.Series([3.0, 6.0, 2.0, 8.0, 7.0, 5.0])
col2 = pd.Series(['a', 'b', 'c', 'a', 'b', 'c'])
user = pd.Series(['user1', 'user1', 'user1', 'user2', 'user2', 'user2'])
users = pd.DataFrame(data={'col1': col1, 'col2': col2, 'user': user})
col1 col2 user
0 3.0 a user1
1 6.0 b user1
2 2.0 c user1
3 8.0 a user2
4 7.0 b user2
5 5.0 c user2
And I would like it to be in this format:
user1 = {'user': 'user1', 'a': 3, 'b': 6, 'c': 2}
user2 = {'user': 'user2', 'a': 8, 'b': 7, 'c': 5}
df2 = pd.DataFrame()
df2 = df2.append(user1, ignore_index=True)
df2 = df2.append(user2, ignore_index=True)
a b c user
0 3.0 6.0 2.0 user1
1 8.0 7.0 5.0 user2
Is there a clean way to achieve this or is it necessary to use a for loop?