如何在Python中获得groupby之后的所有组合键
我希望在groupby之后有所有键的组合,因此如果如何在Python中获得groupby之后的所有组合键,python,pandas,group-by,Python,Pandas,Group By,我希望在groupby之后有所有键的组合,因此如果a具有na唯一值且b具有nb唯一值,则输出行数应为na*nb。我尝试了reindex和reindex\u axis,但没有成功: >>> df = pd.DataFrame({'a': [1,1,2,3],'b':[1, 2, 3,4], 'c':[1,2,3,4]}) >>> df.groupby(['a','b']).count() c a b 1 1 1 2 1 2 3 1 3 4
a
具有na
唯一值且b
具有nb
唯一值,则输出行数应为na*nb
。我尝试了reindex
和reindex\u axis
,但没有成功:
>>> df = pd.DataFrame({'a': [1,1,2,3],'b':[1, 2, 3,4], 'c':[1,2,3,4]})
>>> df.groupby(['a','b']).count()
c
a b
1 1 1
2 1
2 3 1
3 4 1
我想得到:
a b
1 1 1
2 1
3 None
4 None
2 1 None
2 None
3 1
4 None
3 1 None
2 None
3 None
4 1
您可以使用reindex:
idx = pd.MultiIndex.from_product((df['a'].unique(), df['b'].unique()))
df.groupby(['a','b']).count().reindex(idx)
Out:
c
1 1 1.0
2 1.0
3 NaN
4 NaN
2 1 NaN
2 NaN
3 1.0
4 NaN
3 1 NaN
2 NaN
3 NaN
4 1.0
您可以使用reindex:
idx = pd.MultiIndex.from_product((df['a'].unique(), df['b'].unique()))
df.groupby(['a','b']).count().reindex(idx)
Out:
c
1 1 1.0
2 1.0
3 NaN
4 NaN
2 1 NaN
2 NaN
3 1.0
4 NaN
3 1 NaN
2 NaN
3 NaN
4 1.0