Pandas分组计数

3

我有一个数据框,如下所示 (最后10条):

> store_id  period_id   sales_volume    t   unique_period   q4
> 809838    38126884    242 1.3485     1.0   211447000      1
> 643854    38126899    240 2.9500    777.0  211448500      1
> 227299    38126899    242 6.2000    777.0  211450000      1
> 731859    38126908    240 2.2000    777.0  211451500      1
> 687269    38126908    241 2.6000     1.0   211451500      1
> 512944    38126926    241 3.9500    777.0  211453000      1
> 832513    38126935    240 0.9500    777.0  211454500      1
> 417892    38126935    242 4.6500    777.0  211456000      1
> 354468    38126938    241 5.1000    777.0  211457500      1
> 604276    38126938    242 3.2765     1.0   211457500      1

我创建了一个groupby对象:

mc[['store_id', 'unique_period']].groupby(['store_id','unique_period']).count()

这将导致:
store_id    unique_period
4168621     1000
            2500
            4000
            5500
            7000
            8500
4168624     10000
4168636     11500
            13000
            14500

但是我需要在每个组内计算“唯一周期”的数量,例如:

组4168621 - 6条记录, 组4168624 - 1条记录 等等。

之后需要在该系列上计算中位数。

我卡住了。由于GROUPBY没有值,只有GroupBY索引。

1个回答

4

使用 DataFrameGroupBy.nuniquemedian:

a = mc.groupby('store_id')['unique_period'].nunique()
print (a)
store_id
38126884    1
38126899    2
38126908    1
38126926    1
38126935    2
38126938    1
Name: unique_period, dtype: int64

a = mc.groupby('store_id')['unique_period'].nunique().median()
print (a)
1.0

编辑:

如果需要计算唯一值和中位数:

a = mc.groupby('store_id')['unique_period'].agg(['nunique','median'])
print (a)
          nunique     median
store_id                    
38126884        1  211447000
38126899        2  211449250
38126908        1  211451500
38126926        1  211453000
38126935        2  211455250
38126938        1  211457500

抱歉,但那不是我需要的。 - Ciro
@Ciro - 你能添加样本数据的预期输出吗? - jezrael
在 groupby ['store_id'] 中,只有 6 条唯一的 ['unique_period'] 记录。我需要在每个唯一的 ['store_id'] 中计算这些记录。 - Ciro
@Ciro - 你现在可以检查一下吗? - jezrael
上帝保佑,衷心感谢。我在这个问题上陷入了死局))) - Ciro
@Ciro - 谢谢,很高兴能帮到你。如果答案适合你,请不要忘记接受它! :) - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接