首页 > 解决方案 > 如何使用 pivot_table 或 unstack 创建新的数据框

问题描述

我对 Python 很陌生,所以请帮帮我。我有一个数据框如下:
在此处输入图像描述

我想将其取消堆叠/旋转到下面: 在此处输入图像描述

我尝试了不同的方法,但没有得到想要的结果。

我首先尝试groupby仅使用 2 个值进行试用,但这不适用于我想要的,它填充NaN

newdf = df.groupby(['ACCIDENT_NO', 'SEX'])['Age_Group'].value_counts().unstack()

我也试过pivot_table

new_1 = new_df.pivot_table(index=['ACCIDENT_NO'], columns= [ 'SEX','Age_Group'], aggfunc=len, fill_value=0)

这至少填补了零,但这里 SEX 成为主要列,并且年龄组在其下细分。我不关心任何细分或任何东西......我只想将类别拆分为不同的列,如上图所需的图像所示。

标签: pythonpivot

解决方案


get_dummies使用and试试这个单线groupby

df = pd.get_dummies(df, columns=df.columns[1:], prefix='', prefix_sep='').groupby('ACCIDENT_NO', as_index=False).sum()

现在打印df将返回所需的结果。


推荐阅读