熊猫 \- 转置一列

新手上路,请多包涵

我在对熊猫使用转置时遇到困难。

我有以下 df:

 date         name    quantity
1/1/2018     A       5
1/1/2018     B       6
1/1/2018     C       7
1/2/2018     A       9
1/2/2018     B       8
1/2/2018     C       6

我最终想为每个日期的所有名称及其数量创建成对关联。为此,我试图首先从这个 df 创建以下输出:

  date       A    B    C
 1/1/2018   5    6    7
 1/2/2018   9    8    6

转置对我来说很难,因为我可以获得重复的列标题,但我也不想通过先删除它们来丢失任何数据。我觉得答案可能是我并没有真正使用的熊猫实用程序,我可能正在转置隧道……

原文由 JesusMonroe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 630
2 个回答

由于您没有执行聚合, pd.DataFrame.pivot 应该优先于 groupby / pivot_table

 res = df.pivot(index='date', columns='name', values='quantity')

print(res)

name      A  B  C
date
1/1/2018  5  6  7
1/2/2018  9  8  6

如果您愿意,可以使用 reset_indexdate 提升到一个列。

原文由 jpp 发布,翻译遵循 CC BY-SA 4.0 许可协议

我提出的解决方案绝不比 jpp 的更好。我只是碰巧遇到了同样的问题并以不同的方式解决了它。

 df.set_index(['date', 'name']).unstack()

结果看起来也有点乱,但在我的情况下有效:

在此处输入图像描述

原文由 Bowen Liu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题