Pandas 值为_counts()的groupby结果后的透视数据帧
我试了很多,但找不到解决办法 我在df上运行以下代码:Pandas 值为_counts()的groupby结果后的透视数据帧,pandas,group-by,pivot,Pandas,Group By,Pivot,我试了很多,但找不到解决办法 我在df上运行以下代码: df.groupby(df['Operatiejaar'])['ASA'].value_counts().sort_index() 这产生了预期的结果: Operatiejaar ASA 2017 1.0 1523 2.0 2658 3.0 685 4.0 28 2018 1.0 1
df.groupby(df['Operatiejaar'])['ASA'].value_counts().sort_index()
这产生了预期的结果:
Operatiejaar ASA
2017 1.0 1523
2.0 2658
3.0 685
4.0 28
2018 1.0 1357
2.0 2749
3.0 729
4.0 26
2019 1.0 1505
2.0 2770
3.0 787
4.0 27
5.0 1
Name: ASA, dtype: int64
现在,我想把重点放在:
ASA 1 ASA 2 ASA 3 ASA 4
Jaar
2017 1523 2658 685 28
2018 1357 2749 729 26
2019 1505 2770 787 27
我现在手工制作了这个pivot.df。我的问题是:
基于上面的groupby代码:我如何将结果转向想要的df?我相信这一定是可以的,但如何。。。。顺便说一下:groupby的结果是一个系列。使用pd.DataFrame(df)
我已将其转换为数据帧
谢谢!!使用,然后将列名转换为整数,最后使用:
如果每个组只需要前4行,请添加:
谢谢正是我需要的答案!!我用unstack试过allready,但就是做不好。你帮了我大忙,我又学到了一些东西!问候语
s = df.groupby(df['Operatiejaar'])['ASA'].value_counts().sort_index()
df1 = s.unstack().rename(columns=int).add_prefix('ASA ')
df1 = s.groupby(level=0).head(4).unstack().rename(columns=int).add_prefix('ASA ')