美国某城市16年公务员工资集描述性分析

本文通过对美国巴尔的摩2016年公务员工资数据的清洗和分析,揭示了年薪的正态分布特征,主要集中在4-8万美元。年薪最高职位为州检察官,人数最多的是警务人员。数据还显示,公务员入职人数6月最多,2月和4月最少。
摘要由CSDN通过智能技术生成

项目背景

本次练习使用的数据集为美国城市巴尔的摩2016年公务员工资的数据集,将通过数据可视化和数据描述性分析等手段,分析其工资分布情况。

数据来源

本次使用的数据集可以从 https://catalog.data.gov/dataset/baltimore-city-employee-salaries-fy2016该网站进行下载。

其中,一共有13818条数据,7个字段,分别为:

  • Name(姓名)
  • JobTitle(职位名称)
  • AgencyID(工号)
  • Agency(单位)
  • HireDate(入职日期)
  • AnnualSalary(年薪)
  • GrossPay(总薪资-税前)

定义问题

本次练习将围绕工资数据集进行。分别会以下问题展现分析:
- 年薪的总体分布情况
- 年薪最高的职务,人数最多的职位
- 公务人员入职日期的情况

数据清洗与整理

# 设置notebook cell多行输出
from IPython.core.interactiveshell import InteractiveShell 
InteractiveShell.ast_node_interactivity = 'all' #默认为'last'

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
import warnings


os.chdir(r'E:\python_learn\train') # 设置相对路径
warnings.filterwarnings('ignore')  # 设置忽略警告
plt.style.use('ggplot')   # 设置matplotlib的整体风格
file_name = 'Baltimore_City_Employee_Salaries_FY2016.csv'
salary = pd.read_csv(file_name)
salary.head()
Name JobTitle AgencyID Agency HireDate AnnualSalary GrossPay
0 Aaron,Patricia G Facilities/Office Services II A03031 OED-Employment Dev (031) 10/24/1979 12:00:00 AM $56705.00 $54135.44
1 Aaron,Petra L ASSISTANT STATE'S ATTORNEY A29045 States Attorneys Office (045) 09/25/2006 12:00:00 AM $75500.00 $72445.87
2 Abbey,Emmanuel CONTRACT SERV SPEC II A40001 M-R Info Technology (001) 05/01/2013 12:00:00 AM $60060.00 $59602.58
3 Abbott-Cole,Michelle Operations Officer III A90005 TRANS-Traffic (005) 11/28/2014 12:00:00 AM $70000.00 $59517.21
4 Abdal-Rahim,Naim A EMT Firefighter Suppression A64120 Fire Department (120) 03/30/2011 12:00:00 AM $64365.00 $74770.82
# 查看数据结构
salary.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 13818 entries, 0 to 13817
Data columns (total 7 columns):
Name            13818 non-null object
JobTitle        13818 non-null object
AgencyID        13818 non-null object
Agency          13818 non-null object
HireDate        13818 non-null object
AnnualSalary    13818 non-null object
GrossPay        13546 non-null object
dtypes: object(7)
memory usage: 755.8+ KB

从返回的数据信息和结构信息可知,HireDate、AnnualSalary和GrossPay这3个字段的数据类型与实际不符,AnnualSalary和GrossPay字段的数据含有特殊符号,并且GrossPay字段部分数据缺失。

因此接下来要对存在问题的字段进行以下的清洗和整理工作:

  • GrossPay字段的缺失数据处理
  • AnnualSalary和GrossPay字段删除特殊符号
  • AnnualSalary和GrossPay str → numeric
  • HireDate str → datetime
  • JobTitle、Agency str → category
# 缺失值判断及处理
salary.isna().sum()
salary.isna().sum().sum()

# 缺失数据比例较少,可以选择删除处理
Name              0
JobTitle          0
AgencyID          0
Agency            0
HireDate          0
AnnualSalary      0
GrossPay        272
dtype: int64

272
salary = salary.dropna()
salary.isna().sum()
salary.isna().sum().sum()   # 缺失数据处理完成
Name            0
JobTitle        0
AgencyID        0
Agency          0
HireDate        0
AnnualSalary    0
GrossPay        0
dtype: int64

0
# AnnualSalary和GrossPay字段删除特殊符号

def f(x):
    return x.strip('$')   # 删除$符号
salary['AnnualSalary'] = salary['AnnualSalary'].map(f)
salary['GrossPay'] = salary['GrossPay'].map(f)

salary.head()
Name JobTitle AgencyID Agency HireDate AnnualSalary GrossPay
0 Aaron,Patricia G Facilities/Office Services II A03031 OED-Employment Dev (031) 10/24/1979 12:00:00 AM 56705.00 54135.44
1 Aaron,Petra L ASSISTANT STATE'S ATTORNEY A29045 States Attorneys Office (045) 09/25/2006 12:00:00 AM 75500.00 72445.87
2 Abbey,Emmanuel CONTRACT SERV SPEC II A40001 M-R Info Technology (001) 05/01/2013 12:00:00 AM 60060.00 59602.58
3 Abbott-Cole,Michelle Operations Officer III A90005 TRANS-Traffic (005) 11/28/2014 12:00:00 AM 70000.00 59517.21
4 Abdal-Rahim,Naim A EMT Firefighter Suppression A64120 Fir
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值