基于大熊猫数据框中的一列进行分组
问题描述:
我想在下面的数据框中基于Group进行分组。基于大熊猫数据框中的一列进行分组
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
答
你GROUPBY您的数据帧的列成为分组的指数数据帧,你需要第二列来做到这一点。你可以创建一个这样的:
df = df.reset_index()
只是要小心,新列被称为index
,它应该改名。
随着新列这个工作得很好:
df.groupby('Group').count()
或者,如果你不想Group
成为新的数据框的索引:
df.groupby('Group',as_index=False).count()
不能使用as_index=False
顺便提一下一列数据框。
是的,我已经尝试过使用df.groupby('Group')。count()。它没有提供给我数量。它再次打印出组值。 – user3447653
使用'size()',而不是'count()' – danielhadar