熊猫数据框的索引目前是两列的“分组依据”,但我希望它们作为自己的列,并带有标准数字索引

Posted

技术标签:

【中文标题】熊猫数据框的索引目前是两列的“分组依据”,但我希望它们作为自己的列,并带有标准数字索引【英文标题】:Index of a pandas dataframe is currently a "group by" of two columns, but I want them as their own columns with a standard numerical index 【发布时间】:2020-11-18 08:26:26 【问题描述】:

我有一个数据框 df_stack,其类别为“member_no”、“group”和“color”,看起来像 this

我的目标是按 ('member_no', 'group') 分组,并在各自的列中列出与这些对相对应的所有颜色。到目前为止,我的进展是这样的:

dat = [[1, 'A', 'green'], [1, 'A', 'blue'], [1, 'B', 'red'], [2, 'A', 'blue'], [2, 'B', 'red'], [3, 'A', 'yellow'], [3, 'A','pink']]
cols = ['member_no', 'group', 'color']
df_stack = pd.DataFrame(dat, columns=cols)

df2 = pd.pivot_table(df_stack, index= ['member_no','group'],columns=df_stack.groupby(['member_no','group']).cumcount().add(1),values=['color'],aggfunc='sum')

生成的 DF 看起来像 this

这与我需要做的非常接近,但我最终需要它看起来像 this

我对如何将索引转换为标准 [0,1,2,....] 并使 member_no 和自己的列分组感到困惑。本质上,我只希望 (member_id, group) 的每一对都有自己的行,随后的列是与该配对相关的所有颜色。如果一个配对比其他配对多,那么较小的配对在那些空单元格中具有空值是可以的。非常感谢任何帮助!

PS 抱歉,我没有将我的数据框发布为文本而不是图像,我还没有弄清楚如何做到这一点:/

【问题讨论】:

【参考方案1】:

尝试在末尾添加 df2.reset_index() 并检查是否满足您的需求。

【讨论】:

做到了!非常感谢你

以上是关于熊猫数据框的索引目前是两列的“分组依据”,但我希望它们作为自己的列,并带有标准数字索引的主要内容,如果未能解决你的问题,请参考以下文章

如何根据合并的数据框之一的两列的值在熊猫数据框中添加值

如何使用点绘制熊猫数据框的两列

循环遍历熊猫表,按条件更改其他列的值

更改 Pandas 数据框的日期类型

熊猫将一列映射到两列的组合

来自两列的熊猫数据框类别代码