Pandas 基于数据帧中的一列进行分组
我正在尝试根据以下数据框中的组进行分组Pandas 基于数据帧中的一列进行分组,pandas,dataframe,Pandas,Dataframe,我正在尝试根据以下数据框中的组进行分组 Group G1 G1 G1 G2 G2 在上述数据帧中分组之后 Group Count G1 3 G1
Group
G1
G1
G1
G2
G2
在上述数据帧中分组之后
Group Count
G1 3
G1 2
然后,我需要基于组为上述数据帧创建一个透视表
Count
Group
G1 3
G2 2
使用:df.groupby('Group').size()
例如:
In[53]: df = pd.DataFrame({'Group': ['G1', 'G1', 'G1', 'G2', 'G2']})
In[54]: df
Out[54]:
Group
0 G1
1 G1
2 G1
3 G2
4 G2
In[55]: df.groupby('Group').size()
Out[55]:
Group
G1 3
G2 2
根据您想要实现的目标:
In [27]: df.groupby('Group').size().rename('Count').reset_index()
Out[27]:
Group Count
0 G1 3
1 G2 2
In [28]: df.groupby('Group').size().rename('Count').to_frame()
Out[28]:
Count
Group
G1 3
G2 2
按数据帧分组的列将成为分组数据帧的索引,您需要第二列来执行此操作。您可以这样创建一个:
df = df.reset_index()
请注意,新列名为index
,应该重命名
在新专栏中,这一切都很好:
df.groupby('Group').count()
或者,如果您不希望Group
成为新数据帧的索引:
df.groupby('Group',as_index=False).count()
顺便说一句,您不能将
用作单列数据帧的_index=False
。是的,我已经尝试使用df.groupby('Group').count()。它没有给我伯爵。它再次仅打印组值。请使用size()
,而不是count()