准备要发布的汇总数据框

问题描述

我有一个这样的Pandas聚合数据框:

import pandas as pd
agg_df = pd.DataFrame({'v1':['item','item','location','status','status'],'v2' :['bed','lamp','candle','chair','home','new','used' ],'count':['2','2','1','7','4','3' ]})

agg_df

enter image description here

我想为学术出版物做准备,并且需要一个像这样的新数据框:

# item     bed    2
#          lamp   2
#          candle 2
#          chair  1
# location home   7
# status   new    4
#          used   3

如何创建这样的数据框?

解决方法

仅用于显示,可以使用MultiIndex

df = agg_df.set_index(['v1','v2'])
print (df)
                count
v1       v2          
item     bed        2
         lamp       2
         candle     2
         chair      1
location home       7
status   new        4
         used       3

如果需要替换重复的值,请使用Series.duplicatedSeries.mask

agg_df['v1'] = agg_df['v1'].mask(agg_df['v1'].duplicated(),'')
print (agg_df)
         v1      v2 count
0      item     bed     2
1              lamp     2
2            candle     2
3             chair     1
4  location    home     7
5    status     new     4
6              used     3

如果需要删除索引和列值:

print (agg_df.to_string(index=False,header=None))
     item     bed  2
             lamp  2
           candle  2
            chair  1
 location    home  7
   status     new  4
             used  3
,

u可以使用

import pandas as pd
agg_df = pd.DataFrame({'v1':['item','item','location','status','status'],'v2' :['bed','lamp','candle','chair','home','new','used' ],'count':['2','2','1','7','4','3' ]})

agg_df.set_index(["v1","v2"])