要求:比较美国和中国星巴克店铺数量
数据来源:
https://www.kaggle.com/starbucks/store-locations/data
在pandas中类似的分组的操作我们有很简单的方式来完成
df.groupby(by="columns_name")
import pandas as pd
#获取数据
filepath="./starbucks_store_worldwide.csv"
df=pd.read_csv(filepath)
grouped = df.groupby(by="Country")
print(grouped)
结果返回的是一个DataFrameGroupBy
那么问题来了,DataFrameGroupBy是什么内容?
它可以完成遍历,分组操作
1.遍历grouped的结果,他返回的是一个列表每个国家有关星巴克的情况
import pandas as pd
#获取数据
filepath="./starbucks_store_worldwide.csv"
df=pd.read_csv(filepath)
grouped = df.groupby(by="Country")
print(grouped)
for i in grouped:
print(i)
扩展:如果想单独把第一个元素(国家)打印出来
import pandas as pd
#获取数据
filepath="./starbucks_store_worldwide.csv"
df=pd.read_csv(filepath)
grouped = df.groupby(by="Country")
print(grouped)
for i,j in grouped:
print(i)
print('*'*100)
print(j)
2.分组
import pandas as pd
#获取数据
filepath="./starbucks_store_worldwide.csv"
df=pd.read_csv(filepath)
grouped = df.groupby(by="Country")
print(grouped)
b=grouped.count()
print(b)
但我们只想要Brand的数据
import pandas as pd
#获取数据
filepath="./starbucks_store_worldwide.csv"
df=pd.read_csv(filepath)
grouped = df.groupby(by="Country")
print(grouped)
#聚合方法
b=grouped["Brand"].count()
print(b)
我们最终想要US和CN的值
import pandas as pd
#获取数据
filepath="./starbucks_store_worldwide.csv"
df=pd.read_csv(filepath)
grouped = df.groupby(by="Country")
print(grouped)
b=grouped["Brand"].count()
c=b['US']
d=b['CN']
print(c)
print(d)