<返回更多

数据分析-pandas之DataFrame实例数据分组聚合1

2020-06-23    
加入收藏

要求:比较美国和中国星巴克店铺数量

数据来源:
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

数据分析-pandas之DataFrame实例数据分组聚合1

 

那么问题来了,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)
数据分析-pandas之DataFrame实例数据分组聚合1

 

扩展:如果想单独把第一个元素(国家)打印出来

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)
数据分析-pandas之DataFrame实例数据分组聚合1

 

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)
数据分析-pandas之DataFrame实例数据分组聚合1

 

但我们只想要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)
数据分析-pandas之DataFrame实例数据分组聚合1

 

我们最终想要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)
数据分析-pandas之DataFrame实例数据分组聚合1
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>