pandas中groupby的返回值

假设存在如下数据集drinks:
在这里插入图片描述以continent列进行分组:

drinks.groupby(by='continent')

返回值是个重构格式的DataFrameGroupBy object,没法直接输出

('AF',                  country  beer_servings  spirit_servings  wine_servings  \
2                     Algeria             25                0             14   
4                      Angola            217               57             45   
18                      Benin             34                4             13   
22                   Botswana            173               35             35   
26               Burkina Faso             25                7              7   ),
('EU',                 country  beer_servings  spirit_servings  wine_servings  \
1                     Albania             89              132             54   
3                     Andorra            245              138            312   
7                     Armenia             21              179             11   
9                     Austria            279               75            191   
10                 Azerbaijan             21               46              5   )

可以使用方括号取出其中一列数据进行聚合,返回值SeriesGroupBy object

drinks.groupby(by='continent')['country'] 
('AF', 2               Algeria
       4               Angola
       18              Benin
       22              Botswana
       26              Burkina Faso),
('EU', 1               Albania
       3                 Andorra
       7                 Armenia
       9                 Austria
       10             Azerbaijan),

这些结构是由多维数组构成,把SeriesGroupBy object转换成list列表后:

temp = drinks.groupby(by='continent')['country'] 
i = list(temp)
print(i) 

看起来是这样的,list中每个元素由元组构成:

[('AF', 2               Algeria
       4               Angola
       18              Benin
       22              Botswana
       26              Burkina Faso),
('EU', 1               Albania
       3                 Andorra
       7                 Armenia
       9                 Austria
       10             Azerbaijan)]

i[0]

('AF', 2                       Algeria
       4                        Angola
       18                        Benin
       22                     Botswana
       26                 Burkina Faso)

i[0][0]

AF

i[0][1]

2                       Algeria
4                        Angola
18                        Benin
22                     Botswana
26                 Burkina Faso

i[0][1][4]

 Angola

注意这一步产生数组的索引由前面的索引值提供访问,例如不存在3这个索引值
如果你想访问第22号索引
只能写

i[0][1][22]

不能写

i[0][1][3]

i[0][1][3]在这个维度并不存在

所以分组函数只是改变数据的呈现方式,并没改变原数据的索引

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值