员工每月工资数据集可视化分析

前言

最近在学习《从零开始学Python数据分析》这本书,第六章的综合实例——巴尔的摩公务员工资数据集,原网站上数据集被清除,于是在Kaggle上寻找了相似的数据“Employee_monthly_salary.csv”进行可视化数据分析。

工作环境

系统: windows10

工具: pycharm2019.2.6

第三方包:
pandas1.1.4
numpy
1.19.4
matplotlib==3.3.2


文件(Employee_monthly_salary.csv)

在这里插入图片描述


完整代码

# import numpy as np
import pandas as pd
# from pandas import DataFrame
import matplotlib.pyplot as plt
# import matplotlib as mlbpd.set_option('mode.chained_assignment', None)  # 消除链接操作时警示(治标不治本)"""
EmpID 职工ID
Name 姓名
Gender 性别
Date_of_Birth 出生日期 
Age 年龄
Join_Date 入职日期
Tenure_in_org_in_months 工作总月份 
GROSS 总工资
Net_Pay 实际工资
Deduction 扣除部分
Deduction_percentage 扣除百分比 
Designation 职位
Department 部门
""""""
我们即将实现的功能:1.男女平均工资对比;2.男性和女性最高工资和最低工资对比;3.月薪的分布状况 4.人数最多的职位Top5的平均工资;5.不同月份入职人员数量;6.任职时间和工资的关系"""# 主菜单
def menu():print('*' * 10, '请选择功能', '*' * 10, '\n')print('请输入对应功能的序号:')print("1.男女工资平均对比")print('2.最高工资和最低工资对比')print('3.月薪分布状况')print('4.人数最多的职位Top5的平均工资')print('5. 不同月份入职人员数量')print('6. 入职时间和工资的关系')print("输入0字符退出")print('*' * 10, '退出程序', '*' * 10, '\n')# 男女平均工资对比
def sex_salary(salary):avg_salary = salary.groupby('Gender')['Net_Pay'].mean()  # 求平均数avg_salary.plot.bar(color='orange')   # 设置柱的颜色plt.show() #  画布# 男性和女性最高工资和最低工资对比
def salary_contrast(salary):max_salary = salary.groupby('Gender', as_index=False)['Net_Pay'].max()  # 求最大值print(max_salary)min_salary = salary.groupby('Gender', as_index=False)['Net_Pay'].min()  # 求最小值print(min_salary)salary_s = pd.merge(max_salary, min_salary, on='Gender', suffixes=['_max_salary', '_min_salary'])  # 数据合并,suffixes设置区分两个数据同名列# 由于最低工资过低,我们这里将它扩大100倍来进行比较salary_s['Net_Pay_min_salary'] = salary_s.loc[:, 'Net_Pay_min_salary'] * 100salary_s.plot(kind='bar')  # bar代表柱形图plt.show()# 工资的分布状况
def salary_distribution(salary):salary['Net_Pay'].hist(bins=20)  # bins将值分段,不设置默认为10, hist绘制直方图plt.show()# 人数最多的职位Top5的平均工资
def designation_top(salary):avg_salary = salary.groupby('Designation')['Net_Pay'].agg(['mean', 'count'])  # 数据分组,mean求不同职位工资平均值,count计算不同职位人数sort_salary = avg_salary.sort_values(by='count', ascending=False)[:5]  # by指定排序列名,ascending=False设置降序,默认升序sort_salary['mean'].plot(kind='bar')  # 这里的mean是自动创建的平均值列名,绘制柱形图plt.show()# conversion函数用于将数据里类似“01”,“02”等转化为12,类型为str
def conversion(x):data = {'01': 1,'02': 2,'03': 3,'04': 4,'05': 5,'06': 6,'07': 7,'08': 8,'09': 9,}list_data = ['01', '02', '03', '04', '05', '06', '07', '08', '09']if x in list_data:x = data[x]return str(x)else:return x# 不同月份入职人员数量
def month_count(salary):salary['month'] = salary['month'].map(conversion)  # 使用map函数将month列传入conversion实现数据修改month_counts = salary['month'].value_counts()  # value_counts统计每个月份入职人员数month_counts.plot(kind='bar')plt.show()# 工作时间和工资的关系
def work_months(salary):salary.plot(kind='scatter', x='Tenure_in_org_in_months', y='Net_Pay')  # 绘制散点图,展示工作时间和工资的关系plt.show()# 主函数
def main():df = pd.read_csv('Employee_salary.csv')  # 读取数据集# print(df.info())  # 打印信息# print(df.shape)  # DataFrame维度# print(df.isnull().sum())  # 统计缺失值总数df = df.dropna()  # 删除有缺失值的行salary = df[['EmpID', 'Name', 'Gender', 'Age', 'Join_Date', 'Tenure_in_org_in_months', 'Net_Pay','Designation']]  # 选择部分字段使用# df.to_csv('employee.csv')  # 将新DataFrame对象数据写入csv文件中salary['month'] = salary['Join_Date'].str.split('/').str[1]  # 将Join_Date入职日期分离,获取入职月份,添加新列到salary中menu()n = eval(input("请输入编号:(1/2/3/4/5/6/0):"))  # 输入对应整数选择功能print("\n")if n == 1:sex_salary(salary)elif n == 2:salary_contrast(salary)elif n == 3:salary_distribution(salary)elif n == 4:designation_top(salary)elif n == 5:month_count(salary)elif n == 6:work_months(salary)else:exit(0)if __name__ == "__main__":  # 当程序因为自身调动是才启动程序main()

功能效果展示


男女平均工资对比

男女平均工资对比
分析:M(male)代表男性,F(female)代表女性,女性平均工资低于男性,大致接近(可能存在样本量不足因素)


男性和女性最高工资和最低工资对比

在这里插入图片描述
分析:0为女性,1为男性(忘了改了,问题不大),无论男性还是女性最低和最高工资差距极大(注意这里最低工资已经乘了100倍);最高工资男性较高,最低工资男女接近。


工资的分布状况

在这里插入图片描述
分析:满足正太分布,工资在100000左右的居大多数。


人数最多的职位Top5的平均工资

在这里插入图片描述


不同月份入职人员数量

在这里插入图片描述
分析:没有按照顺序排列月份(自己搞去),默认从高到低排列,7月入职的人最多,2月最少。


工作时间和工资的关系

在这里插入图片描述
分析:数据可见,工作时间长工资不一定就高啊。

数据集

最最重要的来了,拿走不用谢

码云(gitee)

注意:
我在项目文件里修改了文件名称,切莫忘记修改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36327.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android app图标长按展示快捷方式 Shortcuts 类似3d touch

android 长按图标展示快捷方式 文章目录 android 长按图标展示快捷方式1. 静态创建2. 动态创建 首先,这不是一个新功能了,在android 7.1的时候就已经支持创建快捷入口了。因为当时项目用不到也没关注过这块,现在很多应用都支持长按展示快捷入…

苹果手机的计算机怎么设置快捷键大全,苹果Macbook快捷键使用大全,超详细!...

苹果电脑Macbook快捷键如何使用?很多小伙伴经常询问小编有关于苹果电脑的相关问题,其实很多快捷键都可以提高生产力,那么接下来一起看看苹果Macbook快捷键使用大全! 苹果电脑Macbook快捷键大全: 一、将键盘当作鼠标使用…

最全Mac系统快捷键一览

Mac中主要有四个修饰键,分别是Command,Control,Option和Shift。 这四个键分别有自己的图案,他们经常出现在Mac应用程序中的菜单栏里,方便你随时学习新的快捷键。 MAC 键盘快捷键符号图例 通用 Command是Mac里最重要的…

苹果Macbook快捷键使用大全

苹果电脑Macbook快捷键如何使用?很多小伙伴经常询问小编有关于苹果电脑的相关问题,其实很多快捷键都可以提高生产力,那么接下来一起看看苹果Macbook快捷键使用大全! 苹果电脑Macbook快捷键大全: 一、将键盘当作鼠标使用…

消除macbook桌面快捷键图标上的箭头

修改/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ 路径下的AliasBadgeIcon.icns如下图: 修改AliasBadgeIcon.icns 名称为AliasBadgeIcon-no.icns 但是坑爹的右键没有重命名选项 于是想着在终端修改文件名 打开终端sudo -i切换到root模…

iOS APP添加桌面快捷方式

本文字数:13900字 预计阅读时间:35 分钟 iOS APP添加桌面快捷方式 背景 新接到一个需求,需要APP内的某些功能,能够把入口添加到桌面,点击桌面到入口可以直接跳转APP对应界面(类似于下面这张示例图&#xff…

mac快捷键标志 ,图案,图标, 常用快捷键

Mac中主要有四个修饰键,分别是Command,Control,Option和Shift。这四个键分别有自己的图案 . Command-Z 撤销  Command-X 剪切   Command-C 拷贝(Copy)   Command-V 粘贴   Command-A 全选(All&…

ShortcutManager桌面app图标长按快捷入口

1.动态方式实现 1.kotlin版代码 1.1 直接实现 对应代码: fun shortcut(){if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.N_MR1) {val scManager: ShortcutManager getSystemService(ShortcutManager::class.java)//跳转Secondval…

MAC OSX 快捷方式更换图标

1、MAC OSX快捷方式创建图标 右键快捷方式——显示简介 将你的icon图片文件(大小为128x128像素)拖入当前图标位置 2、修改你的icon图标文件 有时你会需要让你的桌面图标看起来更加统一,这时你就需要修改你的图标 打开PS,新建1…

正大国际期货:用狼性思维参与外盘期货

投资源于生活,而生活启示了投资交易的方法。因为我们知道在地球上,除了人类,狼应该是最聪明智慧的动物了,那么在狼的智慧中,有怎样的期货投资启示呢?下面正大IxxxuanI详细给大家讲解一下! 1、当…

欧元区通胀率升至9.1% 将跟随美联储“鹰派”步伐?如何使资产保值成为现实需要

欧盟统计局数据显示,由于能源和食品价格持续飙升,欧元区8月调和CPI同比上升9.1%,距离两位数通胀近在咫尺。 伴随着通胀数据屡创新高,摩根大通、高盛和美国银行的分析师均预计,欧央行将在下周的会议上加息75个基点&…

外汇天眼:美联储认为美国房价有大跌的风险!

美联储周五表示,在超低利率的背景下,近年来房价大幅上涨后,高位房价可能会急剧下跌。 “由于估值处于高位,房价可能对冲击特别敏感,”美联储在周五发布的半年度金融稳定报告中表示。 央行表示,尽管最近随…

股票和外汇究竟哪个更存在风险呢?

股票和外汇究竟哪个更存在风险呢? 1、股票T1交易制度,今天买入,明天才能卖出;外汇T0交易制度,随时买入,随时可以卖出。流动性方面看,外汇风险较小。 2、外汇手续费很低,只有买入时扣…

外汇天眼:美元多头仍在掌控中 美联储将加大鹰派立场力度

美元多头不太可能在短期内被推翻,因为美联储(fed)可能会在其普遍预期的加息之后,在本周发表强硬言论,这可能迫使交易员重新考虑利率在见顶前能达到多高。 衡量美元兑一篮子六种主要货币贸易加权汇率的美元指数下跌0.1%,至109.44点…

外汇天眼:美国中期选举共和党若大获全胜!美元未来走势不利

周二,美元企稳,因为交易员们展望美国中期选举,而中国放松对冠状病毒的限制的兴奋情绪有所减弱,这一直在提振投资者人气,并令避险的美元承压。 中期选举的最终结果可能需要几天的时间,但预测显示&#xff0c…

外汇天眼:利空美元!2023年美国经济将如履薄冰?各大银行预测整体不乐观!

高盛表示,美国经济可能避免衰退。摩根士丹利预计,美国经济在2023年只是避开了衰退,但着陆并不那么软。瑞士信贷认为,美国明年可以避免经济下滑。摩根大通警告称,明年很有可能出现经济衰退。美国银行预测2023年第一季度…

理财实践之港股和美股的投资办法、下篇

文章目录 一、美股投资的主要风险有:二、投资美股的注意事项三、选出好公司四、等待好价格五、举例 一、美股投资的主要风险有: 市场风险 – 因股市价格大幅下跌导致股票投资者亏损的风险。这是很正常的市场行为,对于普通投资者来说这是风 …

chatGPT人工智能系统软件开发

ChatGPT是一个由OpenAI开发的人工智能语言模型,可以实现自然语言处理、对话生成等功能。要开发一个类似ChatGPT的人工智能系统软件,可以遵循以下步骤: 确定应用场景:确定人工智能系统软件要解决的问题和应用场景,例…

BERT论文解读: Pre-training of Deep Bidirectional Transformers for Language Understanding(2018)

论文总结 BERT模型的提出几乎就是针对于GPT的,文章实验部分主要就是在和GPT进行效果对比。因此,BERT模型总体上就是在GPT提出的基础上,进行了一部分创新和优化,提出了Bidirectional双向语言模型,预训练阶段采用遮罩语…

开源 LLM (大语言模型)整理(一)

Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 所谓 "语言模型",就是只用来处理语言文字(或者符号体系)的 AI 模型,发现其中的规律,可以根据提示 (pr…