我的数据框看起来像这样:
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
我正在尝试按类别,ID和问题进行重新设计以实现此目的:
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
我在前一个问题中尝试过类似的想法:pandas: how to run a pivot with a multi-index?,但到目前为止还没有运气。
答案 0 :(得分:1)
你在寻找这样的东西:
df['questions'] = df.questions + '/' + df.category
df1 = pd.pivot_table(df, values='answers', index='id',columns='questions', aggfunc='first')
希望有所帮助