python数据分析之员工个人信息可视化
作者:かみさま7 发布时间:2023-08-05 02:32:26
标签:python,员工信息,可视化,数据分析
一、实验目的
(1)熟练使用Counter类进行统计
(2)掌握pandas中的cut方法进行分类
(3)掌握matplotlib第三方库,能熟练使用该三方库库绘制图形
二、实验内容
采集到的数据集如下表格所示:
三、实验要求
1.按照性别进行分类,然后分别汇总男生和女生总的收入,并用直方图进行展示。
2.男生和女生各占公司总人数的比例,并用扇形图进行展示。
3.按照年龄进行分类(20-29岁,30-39岁,40-49岁),然后统计出各个年龄段有多少人,并用直方图进行展示。
import pandas as pd
import matplotlib.pyplot as plt
from collections import Counter
info = [{"name": "E001", "gender": "man", "age": "34", "sales": "123", "income": 350},
{"name": "E002", "gender": "feman", "age": "40", "sales": "114", "income": 450},
{"name": "E003", "gender": "feman", "age": "37", "sales": "135", "income": 169},
{"name": "E004", "gender": "man", "age": "30", "sales": "139", "income": 189},
{"name": "E005", "gender": "feman", "age": "44", "sales": "117", "income": 183},
{"name": "E006", "gender": "man", "age": "36", "sales": "121", "income": 80},
{"name": "E007", "gender": "man", "age": "32", "sales": "133", "income": 166},
{"name": "E008", "gender": "feman", "age": "26", "sales": "140", "income": 120},
{"name": "E009", "gender": "man", "age": "32", "sales": "133", "income": 75},
{"name": "E010", "gender": "man", "age": "36", "sales": "133", "income": 40}
]
# 读取数据
def get_data():
df = pd.DataFrame(info)#DataFrame是一个以命名列方式组织的分布式数据集
df[["age"]] = df[["age"]].astype(int) # 数据类型转为int
df[["sales"]] = df[["sales"]].astype(int) # 数据类型转为int
return df
def group_by_gender(df):
var = df.groupby('gender').sales.sum()#groupby将元素通过函数生成相应的Key,数据就转化为Key-Value格式,之后将Key相同的元素分为一组
fig = plt.figure()
ax1 = fig.add_subplot(211)#2*1个网格,1个子图
ax1.set_xlabel('Gender') # x轴标签
ax1.set_ylabel('Sum of Sales') # y轴标签
ax1.set_title('Gender wise Sum of Sales') # 设置图标标题
var.plot(kind='bar')
plt.show() # 显示
def group_by_age(df):
age_list = [20, 30, 40, 50]
res = pd.cut(df['age'], age_list, right=False)
count_res = pd.value_counts(res)
df_count_res = pd.DataFrame(count_res)
print(df_count_res)
plt.hist(df['age'], bins=age_list, alpha=0.7) # age_list 根据年龄段统计
# 显示横轴标签
plt.xlabel("nums")
# 显示纵轴标签
plt.ylabel("ages")
# 显示图标题
plt.title("pic")
plt.show()
def gender_count(df):
res = df['gender'].value_counts()
df_res = pd.DataFrame(res)
label_list = df_res.index
plt.axis('equal')
plt.pie(df_res['gender'], labels=label_list,
autopct='%1.1f%%',
shadow=True, # 设置阴影
explode=[0, 0.1]) # 0 :扇形不分离,0.1:分离0.1单位
plt.title('gender ratio')
plt.show()
print(df_res)
print(label_list)
if __name__ == '__main__':
data = get_data()
group_by_gender(data)
gender_count(data)
group_by_age(data)
来源:https://blog.csdn.net/liarfeelings/article/details/116013798


猜你喜欢
- 本文实例讲述了smarty模板引擎从配置文件中获取数据的方法。分享给大家供大家参考。具体如下:当某个变量值,不希望在程序中写死时,就可以把该
- 一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。而使用@staticmethod或@classmethod,就可以不需要实例化
- vscode是一款非常轻量级的编辑器,你可以通过安装甚至自己编写一些小的插件来满足各种不同的使用需求,使用起来非常简介方便。方式一:图形安装
- 今天工作中遇到个小问题,情况如下,当我在后台页面中设置Checkbox的Enable的值为false时,我在前端页面中使用脚本(
- 在上一篇的基础上,继续在透明窗体上绘制小球,一、画个大球看看(一)核心代码在on_resize函数内部增加如下画圆的代码 can
- 今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数
- 如果你有 express ,koa, redux 的使用经验,就会发现他们都有 中间件(middlewares)的概念,中间件 是一种 *
- 轮播图的根本其实就是缓动函数的封装,如果说轮播图是一辆跑动的汽车,那么缓动函数就是它的发动机,今天本文章就带大家由简入繁,封装属于自己的缓动
- 前言Python的异常处理能力非常强大,但是用不好也会带来负面的影响。我平时写程序的过程中也喜欢使用异常,虽然采取防御性的方式编码会更好,但
- 前言在进行业务数据分析时,往往需要使用pandas计算环比、同比及增长率等指标,为了能够更加方便的进行的统计数据,整理方法如下。1.数据准备
- 一、python银行管理系统二、分析部分三、代码部分import randomclass bankUser: #
- 从这一章开始进入正式的算法学习。首先我们学习经典而有效的分类算法:决策树分类算法。1、决策树算法决策树用树形结构对样本的属性进行分类,是最直
- 在上两篇文章(MySQL备份与恢复之冷备,MySQL备份与恢复之真
- 1、首先需要在vue-cli项目中配置bootstrap,jquery2、 然后新建vue文件,如index.vue,index.vue内容
- 写程序必然需要版本控制,哪怕是个人项目也是必须的,VS2015开始默认提供了对Git的支持。考虑到现在Git很火,作为微软系的程序员也不得不
- 1.先检查系统是否装有mysqlrpm -qa | grep mysql2.下载mysql的repo源(5.7)wget -i -c htt
- 第一步.开启mysql慢查询方式一:修改配置文件Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下
- 工资excel表格格式如下所示:使用python批量给每位员工发送工资条信息,格式如下:思路:首先是加载excel,获取当前sheet表格s
- 网页过渡是指当浏览者进入或离开网页时,页面呈现的不同的刷新效果,比如卷动、百叶窗等。注:通过模板所建网页无法添加网页过渡效果!制作步骤:1、
- 一、安装前的准备1、下载安装程序包,可到MySQL官方网站www.mysql.com下载,如图1-1:图1-1下载后的安装文件如图1-2所示