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是如何工作的),但是我鼓励你同时使用这两个,看看哪一个更适合你