数据分析(十)之数据的分组聚合和matplotlib小练习

  1. 下面为练习中所用到的数据集
    https://download.csdn.net/download/qq_40926887/13747588

1. 使用matplotlib呈现出店铺总数排名前10的国家

# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib

# windws和linux设置字体的放
font = {
    
    'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': 'larger'}
my_font = matplotlib.rc("font", family='MicroSoft YaHei', weight="bold")

file_path = "./starbucks_store_worldwide.csv"

df = pd.read_csv(file_path)

# 使用matplotlib呈现出店铺总数排名前10的国家
# 准备数据
data1 = df.groupby(by="Country").count()["Brand"].sort_values(ascending=False)[:10]

_x = data1.index
_y = data1.values

# 画图
plt.figure(figsize=(20, 8), dpi=80)

plt.bar(range(len(_x)), _y)

plt.xticks(range(len(_x)), _x)

# 添加描述信息
plt.xlabel("国家", fontproperties=my_font)
plt.ylabel("店铺数量", fontproperties=my_font)

plt.show()

显示
在这里插入图片描述

2. 使用matplotlib呈现出每个中国每个城市的店铺数量

# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib

# windws和linux设置字体
font = {
    
    'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': 'larger'}
my_font = matplotlib.rc("font", family='MicroSoft YaHei', weight="bold")

file_path = "./starbucks_store_worldwide.csv"

df = pd.read_csv(file_path)
df = df[df["Country"] == "CN"]

# 使用matplotlib呈现出每个中国每个城市的店铺数量
# 准备数据
data1 = df.groupby(by="City").count()["Brand"].sort_values(ascending=False)[:25]

_x = data1.index
_y = data1.values

# 画图
plt.figure(figsize=(20, 12), dpi=80)

# plt.bar(range(len(_x)),_y,width=0.3,color="orange")
plt.barh(range(len(_x)), _y, height=0.3, color="orange")

plt.yticks(range(len(_x)), _x, fontproperties=my_font)

# 添加描述信息
plt.xlabel("城市", fontproperties=my_font)
plt.ylabel("店铺数量", fontproperties=my_font)

plt.show()

显示
在这里插入图片描述

3. 现在我们有全球排名靠前的10000本书的数据,那么请统计一下下面几个问题:

  • 不同年份书的数量
  • 不同年份书的平均评分情况
# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib

# windws和linux设置字体
font = {
    
    'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': 'larger'}
my_font = matplotlib.rc("font", family='MicroSoft YaHei', weight="bold")

file_path = "./books.csv"

df = pd.read_csv(file_path)
# print(df.head(2))
# print(df.info())

# 不同年份书的数量
# data1 = df[pd.notnull(df["original_publication_year"])]
# grouped = data1.groupby(by="original_publication_year").count()["title"]
#
# _x = grouped.index
# _y = grouped.values
# # 画图
# plt.figure(figsize=(20, 8), dpi=80)
#
# plt.bar(range(len(_x)), _y)
#
# plt.xticks(range(len(_x)), _x)
# plt.xticks(list(range(len(_x)))[::10], _x[::10].astype(int), rotation=45)
#
# # 添加描述信息
# plt.xlabel("年份", fontproperties=my_font)
# plt.ylabel("数量", fontproperties=my_font)
# 
# plt.show()


# 不同年份书的平均评分情况
# 去除original_publication_year列中nan的行
data1 = df[pd.notnull(df["original_publication_year"])]

grouped = data1["average_rating"].groupby(by=data1["original_publication_year"]).mean()

# print(grouped)

_x = grouped.index
_y = grouped.values

# 画图
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(range(len(_x)), _y)
print(len(_x))

plt.xticks(list(range(len(_x)))[::10], _x[::10].astype(int), rotation=45)
plt.show()

在这里插入图片描述

在这里插入图片描述

第五天学习小结【思维导图】

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40926887/article/details/111477734