星巴克案例分析
groupby 的使用
import pandas as pd
import matplotlib.pyplot as plt
starbucks = pd.read_csv('./directory.csv')
print(starbucks) # 图1
count = starbucks.groupby(["Country"]).count()
print(starbucks.groupby(["Country"]).count()) # 图2
count["Brand"].plot(kind="bar", figsize=(20, 8))
plt.show() # 图3
goup = starbucks.groupby(["Country", "State/Province"]).count()
print(goup) # 图4
图1
图2
图3
图4
电影案例分析
# 电影案例分析
import numpy as np
import pandas
import pandas as pd
import matplotlib.pyplot as plt
# 引入电影数据
movie = pandas.read_csv('./IMDB-Movie-Data.csv')
print(movie) # 图5
# 获取电影的平均分
mean = movie["Rating"].mean()
print(mean) # 6.723199999999999
# 获取电影的导演
m_d = movie["Director"]
# 获取电影的导演数量
print(m_d.shape[0]) # 1000
# 电影的导演去重
unique_director = np.unique(movie["Director"])
unique_director_num = unique_director.shape[0]
# 获取去重后的导演数量
print(unique_director_num) # 644
# Rating 分布
movie["Rating"].plot(kind="hist")
plt.show() # 刻度 5 对应的图不齐 # 图6
# Rating 分布
# 1. 创建画布
plt.figure(figsize=(20, 8), dpi=100)
# 2. 绘制图像
plt.hist(movie["Rating"].values, bins=20)
# 3. 显示图像
plt.show() # 刻度 5 对应的图不齐 # 图7
# 解决:
# Rating 分布
# 1. 创建画布
plt.figure(figsize=(20, 8), dpi=100)
# 2. 绘制图像
plt.hist(movie["Rating"].values, bins=20)
# 添加刻度
# 求出最大最小值
max_ = movie["Rating"].max()
min_ = movie["Rating"].min()
# 生成刻度列表,注意bins=20,所以这里的数量是21
t1 = np.linspace(min_, max_, num=21)
# 修改刻度
plt.xticks(t1)
# 添加网格
plt.grid()
# 3. 显示图像
plt.show() # 刻度对齐 # 图8
temp_list = [i.split(",") for i in movie["Genre"]]
print('temp_list', temp_list) # 图9
genre_list = [i for j in temp_list for i in j]
unique_genre_list = np.unique(genre_list)
print('unique_genre_list', unique_genre_list) # 图10
# 产生一张空白表用于把数据填写进去
zeros = np.zeros([movie.shape[0], unique_genre_list.shape[0]])
print('zeros', zeros) # 图11
temp_movie = pd.DataFrame(zeros, columns=unique_genre_list)
print('temp_movie1', temp_movie) # 图12
for i in range(1000):
temp_movie.loc[i, temp_list[i]] = 1
print('temp_movie2', temp_movie) # 图13
# 求和并排序
genre = temp_movie.sum().sort_values(ascending=False) # ascending=False 降序
print('genre', genre) # 图14
genre.plot(kind="bar", colormap="cool", figsize=(20, 8), fontsize=16)
plt.show() # 图15
图5
图6
图7
图8
图9
图10
图11
图12
图13
图14
图15