【数据分析】图书馆数据-03直方图展示借书数量与借书人数之间的关系

时间:2021-06-21 17:47:48

      图书馆的数据是一年的数据,一年以来,每个学生的借书情况就可以清洗的展示出来,不同学生对于图书的需求也是不同的,那么学生借书的热度如何呢?这里就可以通过计算每个学生的借书数量,来分析一年以来学生的借书情况。

# -*-coding:utf-8-*-

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
""" 图形化展示借书数量的多少 """

data = pd.read_csv('new_data.csv', encoding='gbk')  # 读取数据集
print data  # 数据集

""" 删除book列 """
# del data['book']
# print data
""" copy()某些列 """
data = data[['read_num', 'read_name', 'num_y']]  # num_y 每个学生的借书数量,提取新的数据集,保存到data中
print data

data = data.drop_duplicates()  # 去除重复行

data = data.sort_values(by='num_y', ascending=True)  # 按照借书数量进行排序,递增排序
# data.sort_index(num_y)
print data
print type(data)
data['num_num'] = 1  # 增加一列num_num,全部赋值为1,用于临时计算不同借书数量的人数
print '---------------------------'

""" 计算不同借书数量的人数,就是指借一年来借了50本书的有多少人,借了100本书的有多少人 """

book = data[['num_y', 'num_num']]
print book
print type(book)
# book['num_num'] = 1
# book = data['num_y']
# print book # 不同学生的借书数量
book = book.groupby('num_y').agg('sum')
book = book.reset_index()  # 索引转换为列表
print book
print '------------------------------------'

""" 作图 """

x = list(book['num_y'])  # 横轴表示:一年来,借书数量
y = list(book['num_num'])  # 纵轴表示,借同数量的书的人数
print 'x=', x
print type(x)
print len(x)
print 'y=', y
print type(y)
print len(y)
print '-------------------------------'

""" X轴 借书数量,Y轴 借书人数,图中展示了借书数量小于50的时候,借书人数的多少 """
""" 直方图 """
import seaborn as sns

sns.set_style('darkgrid')
bar_plot = sns.barplot(x=book['num_y'][:50], y=book['num_num'][:50], palette="muted", order=book["num_y"][:50].tolist())
plt.xticks(rotation=0)  # rotation=90 是将X轴垂直化,rotation=0 水平化
plt.show()

图形展示的是借书数量大于50的学生数量分布情况:

【数据分析】图书馆数据-03直方图展示借书数量与借书人数之间的关系