如何使用 pivot_table 或 unstack 来创建新的数据框
How to use pivot_table or unstack to create new data frame
我是 Python 的新手,所以请帮助我。我有一个数据框如下:
我想 unstack/pivot 它到下面:
我尝试了不同的方法,但没有得到想要的结果。
我第一次尝试 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 成为主要栏目,年龄组在其下细分。我不关心任何细分或任何东西...我只想将类别拆分为不同的列,如上图所示。
使用 get_dummies
和 groupby
试试这个单行:
df = pd.get_dummies(df, columns=df.columns[1:], prefix='', prefix_sep='').groupby('ACCIDENT_NO', as_index=False).sum()
现在打印 df
会 return 想要的结果。
我是 Python 的新手,所以请帮助我。我有一个数据框如下:
我想 unstack/pivot 它到下面:
我尝试了不同的方法,但没有得到想要的结果。
我第一次尝试 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 成为主要栏目,年龄组在其下细分。我不关心任何细分或任何东西...我只想将类别拆分为不同的列,如上图所示。
使用 get_dummies
和 groupby
试试这个单行:
df = pd.get_dummies(df, columns=df.columns[1:], prefix='', prefix_sep='').groupby('ACCIDENT_NO', as_index=False).sum()
现在打印 df
会 return 想要的结果。