目录
例1、星巴克店铺统计
现在我们有一组关于全球星巴克店铺的统计数据:
1、如果我想知道美国的星巴克数量和中国的哪个多?
2、中国每个省份星巴克的数量的情况, 应该怎么办?
3、国内星巴克数量排名前25的城市
4、使用matplotlib呈现出店铺总数排名前10的国家
1、如果我想知道美国的星巴克数量和中国的哪个多?
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
file_path = "./starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)
grouped = df.groupby(by="Country")
# print(grouped)
# 数据格式=DataFrameGroupBy==可迭代、每个元素是一个元组
# 每个元组==(索引,索引值) 其中索引值==DataFrame(索引i,i对应数据)
# DataFrameGroupBy对象的方法:count、sum、mean、median(算术中位数)、std(标准差)、var(方差)、max、min
# 返回结果是:不同国家为1维度、2维度是DataFrame(对应国家内所有星巴克店铺)
# 遍历该DataFrameGroupBy对象
for i,j in grouped:
# print(i)# 国家名称
# print("-"*100)
# print(j)#该国所有星巴克店铺
# # 美国星巴克的信息
# print(df[df["Country"]=="US"])
# # 中国星巴克的信息
# print(df[df["Country"]=="CN"])
# 以品牌聚合dataframe并统计星巴克数量
country_count = grouped["Brand"].count()
print("美国有{}家店".format(country_count["US"]))
print("中国有{}家店".format(country_count["CN"]))
2、 中国每个省份星巴克的数量的情况
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
file_path = "./starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)
# 统计中国每个省份店铺的数量,返回1个Series
china_data = df[df["Country"]=="CN"]
# print(china_data)
grouped = china_data.groupby(by = "State/Province").count()["Brand"]
country={"11":"北京",'12':"天津", '13':"河北", '14':"山西", '15':"内蒙古", '21':"辽宁", '22':"吉林", '23':"哈尔滨", '31':"上海", '32':"江苏", '33':"杭州", '34':"安徽",
'35':"福建", '36':"江西", '37':"山东", '41':"河南", '42':"湖北", '43':"湖南", '44':"广东", '45':"广西", '46':"海南", '50':"重庆", '51':"四川", '52':"贵阳",
'53':"云南", '61':"陕西", '62':"甘肃", '63':"青海", '64':"宁夏", '91':"香港", '92':"澳门"}
_x = []
for i in grouped.index:
_x.append(country[i])
_y = grouped.values
print(_x, len(_y))
plt.figure(figsize=(20,8), dpi=80)
plt.bar(range(len(_x)), _y)
plt.xticks(range(len(_x)), _x, rotation=45,fontproperties="SimHei")
plt.xlabel("省份", fontproperties="SimHei")
plt.ylabel("星巴克数量",fontproperties="SimHei")
plt.title("国内各省份星巴克数量统计",fontproperties="SimHei")
plt.show()
plt.savefig("./startbucks.png")
3、国内星巴克数量排名前25的城市
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
file_path = "./starbucks_store_worldwide.csv"
df = pd.read_csv(file_path)
# 使用matplotlib呈现出中国每个城市的店