要求:比較美國和中國星巴克店鋪數量
數據來源:
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)