python - 使用重复索引按索引 reshape Pandas 数据帧

标签 python pandas

我有一个类似这样的数据框:

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/

相关文章:

python - 如何格式化 Pandas 数据框的 IPython html 显示?

Python JSON 保留编码

python - VS Code 未发现 Python 单元测试测试

Python:如何将类变量设置为相同类型的另一个类

python - 获取括号内的字符串

python - 具有滞后值(value)的条件产品的 Pandas cumsum?

python - 如何使用 tensorflow 制作经过训练的模型的副本?

python - 将一行中的字符数作为新列进行计数

python - 与外部列表中的元素相比,如何仅更改 Pandas 的系列值?

python - Pandas 将下面所有行中的一列乘以另一列