Pandas重新格式化表以在groupby之后将某些行设置为列

时间:2017-08-04 15:07:06

标签: python pandas csv

关于在熊猫中重新格式化表格有很多问题,但遗憾的是我无法将这些用于我的例子。

我有:

df = pd.read_csv('dbo.Access_Stat_all.csv',error_bad_lines=False, usecols=['Name','Format','Resource_ID','Number'])
newdf = df[df['Resource_ID'] == 1200]
newdf = newdf[['Format','Name','Number']]

newdf = newdf.groupby(['Format','Name']).last()
print(newdf)

其中给出了以下结果(结果很长,例如只有一些行。)

                 Number
Format Name            
entry  Apr 2006   11
   Apr 2007       3
   Apr 2008       4
   Apr 2011       1
   Apr 2012       3
   Apr 2013       1
   Apr 2014       1
   Apr 2015       1

html   Jun 2017   0
   Apr 2008       4
   Mar 2007       1
   Mar 2013       0
   Mar 2014       0
   Mar 2015       0
   Mar 2016       0

我想要类似的东西:

     Apr 2007   Apr 2008   Mar 2007
Entry  11          4           0
Html    0          0           1

我该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试取消堆结果:

newdf = newdf.unstack()

要删除Number,请尝试:

newdf.columns = newdf.columns.droplevel()