J_Heads
J_Heads

Reputation: 489

Reshaping a pandas data frame on multiple columns

I have data frame that looks like this:

questions = ['What color?', 'What day?', 'How cold?', 'What color?', 'What color?']
category = ['Something1', 'Something2', 'Something1', 'Something2', 'something3']
answers = ['red', 'tuesday', '45', 'blue', 'red']
ids = [0, 1, 2, 3, 0]
df = pd.DataFrame({'id': [0, 1, 2, 0, 0], 'questions': questions, 'answers': 
answers})

>>> id questions    answers category
    0  What color? red      Something1
    1  What day?   tuesday  Something2
    2  How cold?   45       Something1
    0 What color?  blue     Something2
    0 What color?  red      Something3

I am trying to reshape by category, id, and question to get to this:

    How cold?|Something1    What color?|Something1  What color?|Something2   what color?|Something3   What day?|Something2
id          
0         None                   red                     Blue                       red                   None
1         None                   None                    None                       None                  tuesday
2         45                     None                    None                       None                  None

I have tried similar ideas from this former question: pandas: how to run a pivot with a multi-index?, but no luck so far.

Upvotes: 0

Views: 512

Answers (1)

Bubble Bubble Bubble Gut
Bubble Bubble Bubble Gut

Reputation: 3358

Are you looking for something like this:

df['questions'] = df.questions + '/' +  df.category

df1 = pd.pivot_table(df, values='answers', index='id',columns='questions', aggfunc='first')

Hope it helps

Upvotes: 1

Related Questions