python统计分数段人数groupby_关于python:使用pandas GroupBy获取每个组的统计信息(例如计数,平均值等)?...

这篇博客介绍了如何使用Pandas的GroupBy功能获取数据框的分组统计信息,特别是如何获取每个组的行数。通过调用.size()方法可以得到每个组的行数,然后使用.reset_index(name='counts')将其转换为DataFrame。此外,还展示了如何计算更多的统计信息,如平均值、中位数和最小值,并提供了详细的示例。
摘要由CSDN通过智能技术生成

我有一个数据框df,我使用它的几列到groupby:

df['col1','col2','col3','col4'].groupby(['col1','col2']).mean()

以上面的方式,我几乎得到了我需要的表(数据框)。 缺少的是包含每个组中行数的附加列。 换句话说,我有意思,但我也想知道有多少数字被用来获得这些手段。 例如,在第一组中有8个值,在第二组中有10个,依此类推。

简而言之:如何获取数据帧的分组统计信息?

对于不熟悉此问题的人,在更新版本的pandas中,您可以在groupby对象上调用describe()以有效地返回常见统计信息。 有关更多信息,请参阅此答案。

快速回答:

获取每组行数的最简单方法是调用.size(),返回Series:

df.groupby(['col1','col2']).size()

通常您希望此结果为DataFrame(而不是Series),因此您可以执行以下操作:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')

如果您想了解如何计算每个组的行数和其他统计数据,请继续阅读下面的内容。

详细示例:

请考虑以下示例数据帧:

In [2]: df

Out[2]:

col1 col2  col3  col4  col5  col6

0    A    B  0.20 -0.61 -0.49  1.49

1    A    B -1.53 -1.01 -0.39  1.82

2    A    B -0.44  0.27  0.72  0.11

3    A    B  0.28 -1.32  0.38  0.18

4    C    D  0.12  0.59  0.81  0.66

5    C    D -0.13 -1.65 -1.64  0.50

6    C    D -1.42 -0.11 -0.18 -0.44

7    E    F -0.00  1.42 -0.26  1.17

8    E    F  0.91 -0.47  1.35 -0.34

9    G    H  1.48 -0.63 -1.14  0.17

首先让我们使用.size()来获取行数:

In [3]: df.groupby(['col1', 'col2']).size()

Out[3]:

col1  col2

A     B       4

C     D       3

E     F       2

G     H       1

dtype: int64

然后让我们使用.size().reset_index(name='counts')来获取行数:

In [4]: df.groupby(['col1', 'col2']).size().reset_index(name='counts')

Out[4]:

col1 col2  counts

0    A    B       4

1    C    D       3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值