具有多行的数据透视熊猫数据框

时间:2019-08-26 12:24:55

标签: python-3.x pandas

我有一个数据框,如下所示:

d = pd.DataFrame({'name':['bil','bil','bil','bil','jim', 'jim', 
'jim', 'jim'],'col2': ['acct1','law', 'acct1','law', 'acct1','law', 
'acct1','law'],'col3': ['a','b','c', 'd', 'e', 'f', 'g', 'h']
})

     col2 col3 name
0  acct1    a  bil
1    law    b  bil
2  acct1    c  bil
3    law    d  bil
4  acct1    e  jim
5    law    f  jim
6  acct1    g  jim
7    law    h  jim

我尝试使用转换为以下格式,但不确定如何进行此操作:

d = d.groupby(['name', 'col2'])['col3'].apply(lambda x: 
x.reset_index(drop=True)).unstack().reset_index()

   name   col2  0  1
0  bil  acct1  a  c
1  bil    law  b  d
2  jim  acct1  e  g
3  jim    law  f  h

我期望的格式如下所示:

    acc1 law name
 0    a   b  bil
 1    c   d  bil
 2    e   f  jim
 3    g   h  jim

1 个答案:

答案 0 :(得分:1)

GroupBy.cumcount用于计数器Series,通过DataFrame.set_index创建MultiIndex,然后通过Series.unstack和{通过第二级(col2)重塑形状{1}},因为python从1开始计数:

0