Python 如何在数据透视表中重复索引以使nan填充记录较少的行?

Python 如何在数据透视表中重复索引以使nan填充记录较少的行?,python,pandas,pivot-table,Python,Pandas,Pivot Table,请原谅我的问题措词不当,我不知道该怎么说 鉴于这张表 df = pd.DataFrame({'col1': list('AABB'), 'col2': list('acab'), 'values': [1,3,4,5]}) pt = pd.pivot_table(df, index=['col1', 'col2'], values='valu

请原谅我的问题措词不当,我不知道该怎么说

鉴于这张表

df = pd.DataFrame({'col1': list('AABB'),
                   'col2': list('acab'),
                   'values': [1,3,4,5]})
pt = pd.pivot_table(df,
                    index=['col1', 'col2'],
                    values='values',
                    aggfunc=sum)
输出:

col1  col2
A     a       1
      c       3
B     a       4
      b       5
如何使数据透视表输出以下内容:

col1  col2
A     a        1
      b      NaN
      c        3
B     a        4
      b        5
      c      NaN

如果将列转换为
类别
数据类型(pandas 0.15中新增!),您将获得所需的聚合:

df.col2 = df.col2.astype('category')
In [378]: df.groupby(['col1','col2']).sum()
Out[378]:
           values
col1 col2
A    a          1
     b        NaN
     c          3
B    a          4
     b          5
     c        NaN

杰出的谢谢我不知道这么简单的事情就能奏效。我注意到groupby或pivot_表都可以工作。你知道使用一个比另一个更有优势吗?我通常使用groupby,因为我来自sql背景,这对我来说更有意义(我永远不记得pivot是如何工作的),但是我鼓励你同时使用这两个,看看哪一个更适合你