目录
- 基础
- 统计每个国家的星巴克的数量
- 统计美国的星巴克的数量
- 统计美国每个省份星巴克的数量
- 统计美国AK省份星巴克的数量 法1
- 统计美国AK省份星巴克的数量 法2
- 综合使用
- 分组之后普通函数的使用
- 分组之后 apply() 函数的使用
- 分组之后 agg() 函数的使用
基础
数据链接
https://wws.lanzous.com/i8oZGgjqvbi
统计每个国家的星巴克的数量
按照单字段聚合
# -*- codeing = utf-8 -*-
import pandas as pd
import numpy as np
df = pd.read_csv("../data/starbucks_store_worldwide.csv")
# 按国家进行分组后会有很多列 然后取Brand列进行统计,结果是各个国家的星巴克的数量
all_country_data_count = df.groupby(by="Country")["Brand"].count()
print(all_country_data_count )
统计美国的星巴克的数量
# -*- codeing = utf-8 -*-
import pandas as pd
import numpy as np
df = pd.read_csv("../data/starbucks_store_worldwide.csv")
# 按国家进行分组后会有很多列 然后取Brand列进行统计,结果是各个国家的星巴克的数量
all_country_data = df.groupby(by="Country")["Brand"].count()
# 统计美国的星巴克的数量
us_data_count= all_country_data["US"]
print(us_data_count)
统计美国每个省份星巴克的数量
# -*- codeing = utf-8 -*-
import pandas as pd
import numpy as np
df = pd.read_csv("../data/starbucks_store_worldwide.csv")
# 选国家家为美国的,然后按照省份进行分组,取星巴克这一列,进行统计
us_province_data = df[df["Country"] == "US"].groupby(by="State/Province")["Brand"].count()
print(us_province_data)
统计美国AK省份星巴克的数量 法1
按照多字段聚合
# -*- codeing = utf-8 -*-
import pandas as pd
import numpy as np
df = pd.read_csv("../data/starbucks_store_worldwide.csv")
# 按照国家和国家中的省份进行分组 然后取品牌这一列进行统计
# 分组后形成的是series
all_country_count = df.groupby(by=["Country","State/Province])["Brand"].count()
print(all_country_count["US"]["AK"]) # 第一种索引方式
#print(all_country_count["US", "AK"]) # 第二种索引方式
统计美国AK省份星巴克的数量 法2
# -*- codeing = utf-8 -*-
import pandas as pd
import numpy as np
df = pd.read_csv("../data/starbucks_store_worldwide.csv")
# 按照国家和国家中的省份进行分组 然后取品牌这一列进行统计
# 分组后形成的是DataFrame 索引是复合索引
all_country_count = df.groupby(["Country", "State/Province"])[["Brand"]].count()
print(all_country_count.loc["US"].loc["AK"])
综合使用
分组之后,往往会进行后续的处理,所以搭配一些函数介绍
数据创建连接 :从高级创建部分看数据创建好后的部分内容如下
卖菜人一个月的卖菜情况
item:菜名 salesman:卖菜人 weight:进菜重量 price:卖菜价格
分组之后普通函数的使用
统计这一个月,张大妈,李大妈,赵大爷,销售了多少斤蔬菜
ret = df.groupby(['salesman'])['weight']
ret.sum()
分组之后 apply() 函数的使用
apply方法每次处理数据是一组一组进行处理的
统计出摊次数 卖菜总重量 一个月平均每天卖菜的重量(保留2位小数)
出摊次数举例:例如张大妈卖菜 100 200 300 斤, 总共买了三次,所以出摊次数为3次
# 出摊次数 卖菜总重量 一个月平均每天卖菜的重量(保留2位小数)
def analysis(x):
return (x.count(),x.sum(),np.round(x.mean(),decimals=2))
ret.apply(analysis)
分组之后 agg() 函数的使用
统计每个销售人员一个月卖的3种菜的总重量和每种菜的平均价格
g = df.groupby(['salesman','item'])
g.agg({'weight':'sum','price':'mean'}).round(2)