我有一个类似这样的数据框:
questions = ['What color?', 'What day?', 'How cold?', 'What color?', 'What color?']
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
0 What color? red
1 What day? tuesday
2 How cold? 45
0 What color? blue
0 What color? red
我想要这个:
How cold? What color? What day?
id
0 None red None
2 None None tuesday
3 45 None None
4 None blue None
0 None red None
我试过:
df.pivot(values='answers', index='id', columns='questions')
但是,由于索引中的重复项,数据透视表总是会导致错误。
最佳答案
您可以使用 pivot 来实现方法:
df.pivot(columns="questions",values="answers")
输出
How cold? What color? What day?
0 NaN red NaN
1 NaN NaN tuesday
2 45 NaN NaN
3 NaN blue NaN
4 NaN red NaN
编辑如果你想保留你拥有的索引,你可以这样做:
new_df = df.pivot(columns="questions",values="answers")
new_df.index = df.index
关于python - 使用重复索引按索引 reshape Pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44437484/