例题

现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?

数据来源:

https://www.kaggle.com/starbucks/store-locations/data

df=df=pd.read_csv("../data/directory.csv",encoding="gbk")  # 读取文件信息
df.info()  # 文件的概要信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 25600 entries, 0 to 25599
Data columns (total 13 columns):#   Column          Non-Null Count  Dtype
---  ------          --------------  -----  0   Brand           25600 non-null  object 品牌 1   Store Number    25600 non-null  object 店铺编号2   Store Name      25600 non-null  object 店铺名字3   Ownership Type  25600 non-null  object 所有权类型4   Street Address  25598 non-null  object 街道地址 缺失5   City            25585 non-null  object 城市 缺失6   State/Province  25600 non-null  object 州/省7   Country         25600 non-null  object 国家8   Postcode        24078 non-null  object 邮政编码 缺失9   Phone Number    18739 non-null  object 电话号码 缺失10  Timezone        25600 non-null  object 时区11  Longitude       25599 non-null  float64 经度 缺失12  Latitude        25599 non-null  float64 纬度 缺失
dtypes: float64(2), object(11)
memory usage: 2.5+ MB


分组和聚合

df.groupby(by=列名)  # 按照指定的列进行分组


1.可以进行遍历

# 遍历
for i in df.groupby(by="Country"):print(i)print("*"*100)
('AD',        Brand  Store Number     Store Name Ownership Type     Street Address  \
0  Starbucks  47370-257954  Meritxell, 96       Licensed  Av. Meritxell, 96   City State/Province Country Postcode Phone Number  \
0  Andorra la Vella              7      AD    AD500    376818720   Timezone  Longitude  Latitude
0  GMT+1:00 Europe/Andorra       1.53     42.51  )
****************************************************************************************************
('AE',          Brand  Store Number                      Store Name Ownership Type  \
1    Starbucks  22331-212325                Ajman Drive Thru       Licensed
2    Starbucks  47089-256771                       Dana Mall       Licensed
3    Starbucks  22126-218024                      Twofour 54       Licensed
4    Starbucks  17127-178586                    Al Ain Tower       Licensed
5    Starbucks  17688-182164        Dalma Mall, Ground Floor       Licensed
..         ...           ...                             ...            ...
140  Starbucks   34253-62541                  Bukhatir Tower       Licensed
141  Starbucks   1359-138434                  Qanat Al Qasba       Licensed
142  Starbucks   34259-54260                   Sahara Center       Licensed
143  Starbucks   34217-27108  American University of Sharjah       Licensed
144  Starbucks  22697-223524                  UAQ Drive Thru       Licensed   Street Address           City State/Province Country  \
1                  1 Street 69, Al Jarf          Ajman             AJ      AE
2          Sheikh Khalifa Bin Zayed St.          Ajman             AJ      AE
3                       Al Salam Street      Abu Dhabi             AZ      AE
4       Khaldiya Area, Abu Dhabi Island      Abu Dhabi             AZ      AE
5                  Dalma Mall, Mussafah      Abu Dhabi             AZ      AE
..                                  ...            ...            ...     ...
140            Sharjah Buheira Corniche        Sharjah             SH      AE
141                      Al Taawun Road        Sharjah             SH      AE
142                             Alnahda        Sharjah             SH      AE
143  Airport Road, Universities Complex        Sharjah             SH      AE
144                 King Faisal Highway  Umm Al Quwain             UQ      AE   Postcode Phone Number              Timezone  Longitude  Latitude
1        NaN          NaN  GMT+04:00 Asia/Dubai      55.47     25.42
2        NaN          NaN  GMT+04:00 Asia/Dubai      55.47     25.39
3        NaN          NaN  GMT+04:00 Asia/Dubai      54.38     24.48
4        NaN          NaN  GMT+04:00 Asia/Dubai      54.54     24.51
5        NaN          NaN  GMT+04:00 Asia/Dubai      54.49     24.40
..       ...          ...                   ...        ...       ...
140      NaN   06-5560572  GMT+04:00 Asia/Dubai      55.38     25.33
141      NaN   06-5560318  GMT+04:00 Asia/Dubai      55.38     25.32
142      NaN   06-5315823  GMT+04:00 Asia/Dubai      55.37     25.30
143      NaN   06-5585722  GMT+04:00 Asia/Dubai      55.48     25.30
144      NaN          NaN  GMT+04:00 Asia/Dubai      55.54     25.53  [144 rows x 13 columns])
****************************************************************************************************
('AR',          Brand  Store Number        Store Name Ownership Type  \
145  Starbucks   1278-139526   Alto Avelleneda       Licensed
146  Starbucks  16436-159304            Soleil       Licensed
147  Starbucks  47294-254164           Arevalo       Licensed
148  Starbucks  25823-198067  Terrazas de Mayo       Licensed
149  Starbucks  15008-157047        San Isidro       Licensed
..         ...           ...               ...            ...
248  Starbucks  47289-254786           Estrada       Licensed
249  Starbucks  16161-168806            Canada       Licensed
250  Starbucks  22131-168807   Dinosaurio Mall       Licensed
251  Starbucks  16290-163049       Nuevocentro       Licensed
252  Starbucks  16302-163050  Cordoba Shopping       Licensed   Street Address          City State/Province Country  \
145           Avenida Gral. Guemes 897    Avellaneda              B      AR
146                      Yrigiyen 2647      Boulogne              B      AR
147               Nicaragua 6045, CABA  Buenos Aires              B      AR
148     Cruce Ruta 8 y 202, San Miguel  Buenos Aires              B      AR
149           Belgrano, 263 San Isidro  Buenos Aires              B      AR
..                                 ...           ...            ...     ...
248              Estrada 159 , Cordoba       Cordoba              X      AR
249                      Av. Colon 608       Cordoba              X      AR
250  Av. Fuerza Aerea Argentina 1700 B       Cordoba              X      AR
251                 Duarte Quiroz 1400       Cordoba              X      AR
252              Jose de Goyechea 2851       Cordoba              X      AR   Postcode Phone Number                        Timezone  Longitude  Latitude
145    B1870    4204-3785  GMT-03:00 America/Argentina/Bu     -58.37    -34.68
146     1609          NaN  GMT-03:00 America/Argentina/Bu     -57.87    -34.88
147      NaN          NaN  GMT-03:00 America/Argentina/Bu     -58.44    -34.58
148    C1663          NaN  GMT-03:00 America/Argentina/Bu     -58.70    -34.53
149    B1642          NaN  GMT-03:00 America/Argentina/Bu     -58.51    -34.47
..       ...          ...                             ...        ...       ...
248     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.20    -31.44
249     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.19    -31.41
250    C5000          NaN  GMT-03:00 America/Argentina/Bu     -64.24    -31.36
251     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.20    -31.41
252     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.20    -31.44  [108 rows x 13 columns])
****************************************************************************************************
# 当我们对这个DataFrameGroupBy对象进行遍历的时候,返回一个元组
# (A,B)
# A:分组的依据
# B:满足这个分组依据的dataframe
# 遍历返回的元组
for i,j in df.groupby(by="Country"):print(i)print("="*50)print(j)print("*"*100)
AD
==================================================Brand  Store Number     Store Name Ownership Type     Street Address  \
0  Starbucks  47370-257954  Meritxell, 96       Licensed  Av. Meritxell, 96   City State/Province Country Postcode Phone Number  \
0  Andorra la Vella              7      AD    AD500    376818720   Timezone  Longitude  Latitude
0  GMT+1:00 Europe/Andorra       1.53     42.51
****************************************************************************************************
AE
==================================================Brand  Store Number                      Store Name Ownership Type  \
1    Starbucks  22331-212325                Ajman Drive Thru       Licensed
2    Starbucks  47089-256771                       Dana Mall       Licensed
3    Starbucks  22126-218024                      Twofour 54       Licensed
4    Starbucks  17127-178586                    Al Ain Tower       Licensed
5    Starbucks  17688-182164        Dalma Mall, Ground Floor       Licensed
..         ...           ...                             ...            ...
140  Starbucks   34253-62541                  Bukhatir Tower       Licensed
141  Starbucks   1359-138434                  Qanat Al Qasba       Licensed
142  Starbucks   34259-54260                   Sahara Center       Licensed
143  Starbucks   34217-27108  American University of Sharjah       Licensed
144  Starbucks  22697-223524                  UAQ Drive Thru       Licensed   Street Address           City State/Province Country  \
1                  1 Street 69, Al Jarf          Ajman             AJ      AE
2          Sheikh Khalifa Bin Zayed St.          Ajman             AJ      AE
3                       Al Salam Street      Abu Dhabi             AZ      AE
4       Khaldiya Area, Abu Dhabi Island      Abu Dhabi             AZ      AE
5                  Dalma Mall, Mussafah      Abu Dhabi             AZ      AE
..                                  ...            ...            ...     ...
140            Sharjah Buheira Corniche        Sharjah             SH      AE
141                      Al Taawun Road        Sharjah             SH      AE
142                             Alnahda        Sharjah             SH      AE
143  Airport Road, Universities Complex        Sharjah             SH      AE
144                 King Faisal Highway  Umm Al Quwain             UQ      AE   Postcode Phone Number              Timezone  Longitude  Latitude
1        NaN          NaN  GMT+04:00 Asia/Dubai      55.47     25.42
2        NaN          NaN  GMT+04:00 Asia/Dubai      55.47     25.39
3        NaN          NaN  GMT+04:00 Asia/Dubai      54.38     24.48
4        NaN          NaN  GMT+04:00 Asia/Dubai      54.54     24.51
5        NaN          NaN  GMT+04:00 Asia/Dubai      54.49     24.40
..       ...          ...                   ...        ...       ...
140      NaN   06-5560572  GMT+04:00 Asia/Dubai      55.38     25.33
141      NaN   06-5560318  GMT+04:00 Asia/Dubai      55.38     25.32
142      NaN   06-5315823  GMT+04:00 Asia/Dubai      55.37     25.30
143      NaN   06-5585722  GMT+04:00 Asia/Dubai      55.48     25.30
144      NaN          NaN  GMT+04:00 Asia/Dubai      55.54     25.53  [144 rows x 13 columns]
****************************************************************************************************
AR
==================================================Brand  Store Number        Store Name Ownership Type  \
145  Starbucks   1278-139526   Alto Avelleneda       Licensed
146  Starbucks  16436-159304            Soleil       Licensed
147  Starbucks  47294-254164           Arevalo       Licensed
148  Starbucks  25823-198067  Terrazas de Mayo       Licensed
149  Starbucks  15008-157047        San Isidro       Licensed
..         ...           ...               ...            ...
248  Starbucks  47289-254786           Estrada       Licensed
249  Starbucks  16161-168806            Canada       Licensed
250  Starbucks  22131-168807   Dinosaurio Mall       Licensed
251  Starbucks  16290-163049       Nuevocentro       Licensed
252  Starbucks  16302-163050  Cordoba Shopping       Licensed   Street Address          City State/Province Country  \
145           Avenida Gral. Guemes 897    Avellaneda              B      AR
146                      Yrigiyen 2647      Boulogne              B      AR
147               Nicaragua 6045, CABA  Buenos Aires              B      AR
148     Cruce Ruta 8 y 202, San Miguel  Buenos Aires              B      AR
149           Belgrano, 263 San Isidro  Buenos Aires              B      AR
..                                 ...           ...            ...     ...
248              Estrada 159 , Cordoba       Cordoba              X      AR
249                      Av. Colon 608       Cordoba              X      AR
250  Av. Fuerza Aerea Argentina 1700 B       Cordoba              X      AR
251                 Duarte Quiroz 1400       Cordoba              X      AR
252              Jose de Goyechea 2851       Cordoba              X      AR   Postcode Phone Number                        Timezone  Longitude  Latitude
145    B1870    4204-3785  GMT-03:00 America/Argentina/Bu     -58.37    -34.68
146     1609          NaN  GMT-03:00 America/Argentina/Bu     -57.87    -34.88
147      NaN          NaN  GMT-03:00 America/Argentina/Bu     -58.44    -34.58
148    C1663          NaN  GMT-03:00 America/Argentina/Bu     -58.70    -34.53
149    B1642          NaN  GMT-03:00 America/Argentina/Bu     -58.51    -34.47
..       ...          ...                             ...        ...       ...
248     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.20    -31.44
249     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.19    -31.41
250    C5000          NaN  GMT-03:00 America/Argentina/Bu     -64.24    -31.36
251     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.20    -31.41
252     5000          NaN  GMT-03:00 America/Argentina/Bu     -64.20    -31.44  [108 rows x 13 columns]
****************************************************************************************************
# 选择美国的数据
# 方法一
for i,j in df.groupby(by="Country"):if i=="US":print(j)
           Brand  Store Number                        Store Name  \
11964  Starbucks   3513-125945           Safeway-Anchorage #1809
11965  Starbucks   74352-84449           Safeway-Anchorage #2628
11966  Starbucks  12449-152385         Safeway - Anchorage #1813
11967  Starbucks  24936-233524          100th & C St - Anchorage
11968  Starbucks    8973-85630              Old Seward & Diamond
...          ...           ...                               ...
25567  Starbucks   74385-87621             Safeway-Laramie #2466
25568  Starbucks   73320-24375          Ridley's - Laramie #1131
25569  Starbucks  22425-219024            Laramie - Grand & 30th
25570  Starbucks  10849-103163      I-80 & Dewar Dr-Rock Springs
25571  Starbucks  10769-102454  Coffeen & Brundage Lane-Sheridan   Ownership Type                                     Street Address  \
11964       Licensed                               5600 Debarr Rd Ste 9
11965       Licensed                                     1725 Abbott Rd
11966       Licensed                                    1501 Huffman Rd
11967  Company Owned  320 W. 100th Ave, 100, Southgate Shopping Ctr ...
11968  Company Owned                                 1005 E Dimond Blvd
...              ...                                                ...
25567       Licensed                                       554 N 3rd St
25568       Licensed                                      3112 E. Grand
25569  Company Owned                                     3021 Grand Ave
25570  Company Owned                                   118 Westland Way
25571  Company Owned                                   2208 Coffeen Ave   City State/Province Country   Postcode    Phone Number  \
11964     Anchorage             AK      US  995042300    907-339-0900
11965     Anchorage             AK      US  995073444    907-339-2800
11966     Anchorage             AK      US  995153596    907-339-1300
11967     Anchorage             AK      US      99515  (907) 227-9631
11968     Anchorage             AK      US  995152050    907-344-4160
...             ...            ...     ...        ...             ...
25567       Laramie             WY      US  820723012    307-721-5107
25568       Laramie             WY      US  820705141    307-742-8146
25569       Laramie             WY      US      82070    307-742-3262
25570  Rock Springs             WY      US  829015751    307-362-7145
25571     Sheridian             WY      US  828016213    307-672-5129   Timezone  Longitude  Latitude
11964  GMT-09:00 America/Anchorage    -149.78     61.21
11965  GMT-09:00 America/Anchorage    -149.84     61.14
11966  GMT-09:00 America/Anchorage    -149.85     61.11
11967  GMT-09:00 America/Anchorage    -149.89     61.13
11968  GMT-09:00 America/Anchorage    -149.86     61.14
...                            ...        ...       ...
25567     GMT-07:00 America/Denver    -105.59     41.32
25568     GMT-07:00 America/Denver    -105.56     41.31
25569     GMT-07:00 America/Denver    -105.56     41.31
25570     GMT-07:00 America/Denver    -109.25     41.58
25571     GMT-07:00 America/Denver    -106.94     44.77  [13608 rows x 13 columns]
# 选择美国的数据
# 方法二
df[df["Country"]=="US"].head()

2.调用聚合方法

# 调用聚合方法
grouped=df.groupby(by="Country")
# 统计个数
grouped.count().head()
# 返回一个dataframe
# 把每一列的数据都统计了
# 如果数据没有缺失的话,同一行的数据应该是一样的
# 但是由于存在数据缺失,所以在有些行中,即使是同一行,数据也不一样

# 注意:由于存在数据缺失,在有些行中,即使是同一行,数据也不一样
# 所以我们在统计个数的时候,不应该是统计一整个dataframe
# 而是统计这个dataframe中没有缺失值的那一列
# 这样得到的结果才是准确的
grouped["Brand"].count()

解一

代码

# -*- coding: utf-8 -*-'''
@Time    : 2020/12/18 12:19
@Author  : yuhui
@Email   : 3476237164@qq.com
@FileName: pandas_5.py
@Software: PyCharm
'''"""
现在我们有一组关于全球星巴克店铺的统计数据,
如果我想知道美国的星巴克数量和中国的哪个多,
或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?
""""""33【数据的合并和分组聚合】03数据分组聚合
如果我想知道美国的星巴克数量和中国的哪个多,"""import pandas as pdfile_path="../data/directory.csv"df=pd.read_csv(file_path,encoding="gbk")
# print(df.head())
# print(df.info())# 按照国家进行分组
grouped=df.groupby(by="Country")# 统计个数
country_count=grouped["Brand"].count()
# print(country_count)# 选择中国和美国的数据
# 中国CN  美国US
CN_count=country_count["CN"]
US_count=country_count["US"]
print(CN_count,US_count)

运行结果

解二

代码

# -*- coding: utf-8 -*-'''
@Time    : 2020/12/21 17:28
@Author  : yuhui
@Email   : 3476237164@qq.com
@FileName: pandas_5_2.py
@Software: PyCharm
'''"""33【数据的合并和分组聚合】03数据分组聚合
我想知道中国每个省份星巴克的数量的情况"""import pandas as pdfile_path="../data/directory.csv"df=pd.read_csv(file_path,encoding="gbk")# 选择中国的数据
df=df[df["Country"]=="CN"]# 按照省份进行分组
grouped=df.groupby(by="State/Province")# 统计数量(取其中某一列(不含缺失值))
grouped_count=grouped["Brand"].count()
print(grouped_count)

运行结果

D:\Python\Installation\python.exe D:/Python/数据分析/数据分析2/code/pandas_5_2.py
State/Province
11    236
12     58
13     24
14      8
15      8
21     57
22     13
23     16
31    551
32    354
33    315
34     26
35     75
36     13
37     75
41     21
42     76
43     35
44    333
45     21
46     16
50     41
51    104
52      9
53     24
61     42
62      3
63      3
64      2
91    162
92     13
Name: Brand, dtype: int64Process finished with exit code 0

33【数据的合并和分组聚合】03数据分组聚合相关推荐

  1. 多帧点云数据拼接合并_多工作簿数据合并,还在手动复制粘贴就out了,用批处理一键搞定...

    相信许多朋友都有碰到过将多个工作簿文件数据合并到一张表的情况,这种情况下许多朋友想尽各种办法,复制粘贴也好.vba多表合并也罢,但是合并数据总感觉需要耗费很多时间. 如上图所示,我们需要将1-8月8个 ...

  2. Excel删除重复数据java_合并Excel范围中的数据,删除空白和重复项

    这是一种方法 . CODE (TRIED AND TESTED) Option Explicit Sub Sample() Dim ws As Worksheet Dim LastRow As Lon ...

  3. 数据分析 第七讲 pandas练习 数据的合并、分组聚合、时间序列、pandas绘图

    文章目录 数据分析 第七讲 pandas练习 数据的合并和分组聚合 一.pandas-DataFrame 练习1 对于这一组电影数据,如果我们想runtime(电影时长)的分布情况,应该如何呈现数据? ...

  4. Chapter5 数据的合并和分组聚合

    字符串离散化的案例 #coding=utf-8 import matplotlib.pyplot as plt import pandas as pd import numpy as np file_ ...

  5. 【DS with Python】DataFrame的合并、分组聚合与数据透视表

    文章目录 前言 一.DataFrame的合并 1.1 按列名合并 (pd.merge()) 1.2 相同列添加行数 (pd.concat()功能) 二.应用 (.apply()功能) 三.分组 (.g ...

  6. 使用SQL聚合函数,分组,完成数据合并,字段拼接或者字段追加

    在项目的开发过程中,我们会遇到一些特殊的业务需求,如接下来讲的业务需求:根据多个字段,如果多个字段相同就把两条数据合并为一条数据,但是两条数据的创建人的追加在一条数据中,返回给前端. 话不多说上图解释 ...

  7. python数据科学包第三天(索引、分组计算、数据聚合、分组运算和转换、载入数据、日期范围、数据可视化)

    索引 行索引 列索引 索引的分类 重复索引的处理 s = pd.Series(np.random.rand(5), index=list('abcde')) s a 0.566924 b 0.6034 ...

  8. python中数据分组计算_python3数据聚合与分组运算(二)

    数据聚合 对于聚合,这里指的是任何能够从数组产生标量值的数据转换过程.之前的例子中已经用过一些,比如mean.count.min以及sum等.我们可能想知道在GroupBy对象上调用mean()时究竟 ...

  9. python数据分析及可视化(九)pandas数据规整(分组聚合、数据透视表、时间序列、数据分析流程)

    作业 拼接多个csv文件 去除重复数据,重新索引 自动挡和手动挡数目 计算每个城市二手车数量 统计每个汽车品牌平均售价价格(不是原价) 分组与聚合 如下表所示,5行3列的表格,5种水果分别对应的名称, ...

最新文章

  1. 看,这就是你心心念的研究生生活
  2. 判断机器学习算法或深度学习算法优势常考虑的点
  3. linux中sed的基本用法,linux sed用法
  4. creo管道设计教程_Creo产品设计教程:握力器弹簧建模,一个技巧轻松搞定
  5. jsp页面获取系统的日期时间
  6. java stream groupingBy(classifier, downstream, mapFactory)
  7. 猫眼top前100电影爬取demo(正则初试)
  8. UnityParticle2:5x基础模块
  9. notion知识库网站
  10. C++ char,int 之间的相互转换
  11. ESET NOD32 Antivirus – 免费 3个月/ 3PC
  12. 线性代数mit18.06读课本-D1-1.1
  13. 2017第十四届国际真空展览会会刊(参展商名录)
  14. MVC 原理和框架图
  15. tortoise清理本地分支_如何删除TortoiseHg中的意外分支?
  16. JAVA实现邮件抄送,密送,多个附件发送
  17. qcloud php开发,GitHub - QcloudApi/qcloudapi-sdk-php
  18. EC esayClick 自定义浮窗
  19. 前端面试问题(白话回答,便于记忆)
  20. Github如何绑定域名

热门文章

  1. POSIX 文件能力:分配根用户的能力
  2. arraylist java 排序_「arraylist排序」java ArrayList的两种排序方法 - seo实验室
  3. 如何在 Linux 中删除目录
  4. vs2017离线安装vs tools for unity
  5. 记帐软件测试自学,初入软件测试必备:不知如何下手?一篇文章带你上手批量功能测试...
  6. Hugging Face 中文预训练模型使用介绍及情感分析项目实战
  7. centos 7RHEL7 忘记密码怎么修改root密码
  8. 【Unity基础】Time实现一个间隔时间做某事每秒移动x米
  9. 关于对渣打编程马拉松 2013 的样题的一些想法
  10. Python 插入latex符号,比如45°,45度