0

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?

Jeremy
  • 67
  • 4

0 Answers0