利用Python实现岗位的分析报告

yizhihongxing

利用Python实现岗位的分析报告是一个基于数据分析的任务,需要按照以下步骤进行:

1. 收集数据

收集数据是实现报告的第一步,需要从合适的渠道获取所需的数据。其中,常用的数据源包括:

  • 爬虫:可以通过scrapy等爬虫框架获取数据源,如boss直聘等招聘网站的招聘信息等。
  • API:若所需数据源具有开放API接口,我们可以根据接口文档和调用方式,利用requests等库通过API获取。
  • 数据库:如果数据已经存在于数据库中,我们可以使用ORM框架例如sqlalchemy,进行数据查询和导出。

2. 数据清洗

数据清洗是每一个数据分析项目的必要工作。可以使用pandas等数据框架来进行数据的清洗和预处理。具体需要进行的工作包括:

  • 数据去重:判断数据是否有重复项,若有则删除。
  • 缺失值填充:判断数据是否有缺失值,若有则进行填充,可选择填充平均值、中位数等。
  • 数据类型转换:将字符型数据转化为数值型数据。

3. 数据分析

数据清洗完后,就能进行数据分析。数据分析可使用pandas等数据框架进行。常用的数据分析方式有:

  • 统计数量:计算薪水最高/最低/平均值,公司数量等数量上的统计分析。
  • 可视化分析:使用matplotlib、seaborn等可视化库,将数据绘制成条形图、折线图、热力图等各式各样的图表,以便于进行更直观的数据分析。

4. 结论与报告

在完成数据分析后,我们可以根据数据的分析结果,得出相关结论,并根据需要转换为报告。报告可以以图表、表格等形式展示,也可以进行文本描述,更可选择使用markdown等文件格式来展示分析过程中的代码及结果。

示例1

以下是一个实例:我们从boss直聘中获取了python工程师的招聘信息。我们可以使用pandas对数据进行清洗和分析,并使用matplotlib进行可视化。

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv('boss_python.csv')

# 数据清洗
df.drop_duplicates(inplace=True)
df.dropna(inplace=True)
df['salary_min'] = df['salary'].apply(lambda x: int(x.split('-')[0]))
df['salary_max'] = df['salary'].apply(lambda x: int(x.split('-')[1][:-1]))
df['salry_mean'] = (df['salary_min'] + df['salary_max']) / 2
df = df[['company_name', 'work_name', 'work_year', 'education', 'city', 'salary_min', 'salary_max', 'salry_mean', 'welfare', 'work_addr']]

# 数据统计分析
city_df = pd.DataFrame(df['city'].value_counts())
salary_min_df = df.groupby(['city'])['salary_min'].mean()
salary_max_df = df.groupby(['city'])['salary_max'].mean()
salry_mean_df = df.groupby(['city'])['salry_mean'].mean()

# 可视化分析
city_df.plot(kind='bar')
plt.title('Python工程师岗位城市分布')
plt.show()

salary_min_df.plot(kind='bar')
plt.title('Python工程师岗位最低工资')
plt.show()

salary_max_df.plot(kind='bar')
plt.title('Python工程师岗位最高工资')
plt.show()

salry_mean_df.plot(kind='bar')
plt.title('Python工程师岗位平均工资')
plt.show()

示例2

以下是另一个实例,我们借助爬虫工具和pandas,从智联招聘中获取大数据工程师的招聘信息,对其进行统计分析。

import requests
from lxml import etree
import pandas as pd
import matplotlib.pyplot as plt    

url = 'https://fe-api.zhaopin.com/c/i/sou'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36'
}
# 爬虫获取数据
def get_data(page):
    params = {
        'pageSize': '90',
        'cityId': '538',
        'workExperience': '-1',
        'education': '-1',
        'companyType': '-1',
        'employmentType': '-1',
        'jobWelfareTag': '-1',
        'kw': '大数据工程师',
        'kt': '3',
        'lastUrlQuery': '{"p":' + str(page) + ',"pageSize":"90","jl":"538"}',
        'showId': 'af3484d9e633491ea862abf2bd618ddb',
        'page': page
    }
    res = requests.get(url, headers=headers, params=params)
    data = res.json()
    return data['data']['results']

df = pd.DataFrame()
for page in range(1, 6):
    data = get_data(page)
    page_df = pd.DataFrame(data)
    df = pd.concat([df, page_df])

df.to_csv('zhilian_bigdata.csv')

# 数据清洗
df.drop_duplicates(inplace=True)
df.dropna(inplace=True)
df['salary_min'] = df['salary'].apply(lambda x: int(x.split('-')[0]))
df['salary_max'] = df['salary'].apply(lambda x: int(x.split('-')[1][:-4]))
df['salry_mean'] = (df['salary_min'] + df['salary_max']) / 2
df = df[['company', 'jobName', 'workingExp', 'eduLevel', 'city', 'salary_min', 'salary_max', 'salry_mean', 'welfare', 'emplType']]

# 数据统计分析
city_df = pd.DataFrame(df['city'].value_counts())
salary_min_df = df.groupby(['city'])['salary_min'].mean()
salary_max_df = df.groupby(['city'])['salary_max'].mean()
salry_mean_df = df.groupby(['city'])['salry_mean'].mean()

# 可视化分析
city_df.plot(kind='bar')
plt.title('大数据工程师岗位城市分布')
plt.show()

salary_min_df.plot(kind='bar')
plt.title('大数据工程师岗位最低工资')
plt.show()

salary_max_df.plot(kind='bar')
plt.title('大数据工程师岗位最高工资')
plt.show()

salry_mean_df.plot(kind='bar')
plt.title('大数据工程师岗位平均工资')
plt.show()

以上两个实例,分别从boss直聘和智联招聘中获取工程师岗位数据,并通过pandas、matplotlib等工具进行数据处理和分析,并使用可视化图表展示分析结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Python实现岗位的分析报告 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • 使用Python中的tkinter模块作图的方法

    使用Python中的tkinter模块作图是一个非常有用的功能。下面是详细的操作步骤: 1. 导入tkinter模块 首先需要导入tkinter模块,可以使用以下代码: import tkinter as tk 2. 创建主窗口 接下来需要创建主窗口,可以使用以下代码: root = tk.Tk() root.title("图形操作") …

    python 2023年5月19日
    00
  • python实现网站的模拟登录

    Python实现网站的模拟登录是一种常见的自动化测试方法,可以帮助我们更好地测试网站的功能和稳定性。本文将介绍如何使用Python实现网站的模拟登录,并提供两个示例。 1. 使用requests库实现模拟登录 我们可以使用requests库实现模拟登录。以下是一个示例,演示如何使用requests库实现模拟登录: import requests login_…

    python 2023年5月15日
    00
  • Python龙贝格法求积分实例

    下面是关于“Python龙贝格法求积分实例”的完整攻略。 什么是龙贝格法 龙贝格法是一种数值积分方法,其主要思想是采用递归的方法逐步逼近积分值。具体实现中,算法分为两个级别:一级龙贝格和二级龙贝格,一级龙贝格会将积分区间划分为两半,而二级龙贝格则会前后两次采取一级龙贝格的近似方法,从而在精度上更为准确。 Python实现龙贝格法 这里提供了一个利用Pytho…

    python 2023年6月3日
    00
  • Python 通过调用接口获取公交信息的实例

    当我们需要获取公交信息时,我们可以通过调用公交公司提供的数据接口来获取。本文将为大家介绍如何使用Python调用接口获取公交信息。 步骤一:获取API接口 首先,我们需要从公交公司获取数据接口的URL和接口参数。以“杭州公共交通总公司”提供的实时公交线路信息为例,数据获取步骤如下: 打开“杭州公交总公司”官网(http://www.hzbus.cn),点击“…

    python 2023年6月3日
    00
  • python简单分割文件的方法

    以下是“Python简单分割文件的方法”的完整攻略: 简介 在某些情况下,我们需要将一个大文件分割成多个小文件,或者根据长度、行数等规则将一个文件分割成多个文件。Python提供了简单的方式来实现这些操作。 方法1:使用seek和read方法 下面是一段示例代码,它将一个文件分割成5个小文件,每个小文件大小为10M(除了最后一个文件,大小可能小于10M): …

    python 2023年6月5日
    00
  • 怎么快速自学python

    以下是我对“怎么快速自学python”的完整攻略的讲解。 1. 制定合理的学习计划 要想快速自学Python,首先要制定一份合理的学习计划。可以从以下几个方面考虑: 学习内容梳理:根据自己的实际情况、学习目标和需求,制定详细的学习计划。可以按照Python的基础语法、常用模块、web开发、数据分析等方向进行梳理。 合理分配时间:合理的学习计划应该尽量兼顾工作…

    python 2023年5月30日
    00
  • python利用pytesseract 实现本地识别图片文字

    针对“python利用pytesseract 实现本地识别图片文字”的完整攻略,我会提供以下内容: 简介 pytesseract是一个OCR(光学字符识别)库,它可用于将图像中的文本转换为可编辑文本格式,如txt、doc和pdf等。Tesseract是一个开源OCR引擎,它被Google开发并维护。 Python接口可供使用。它可以通过pip命令安装,并且T…

    python 2023年5月18日
    00
  • Python3中的算术运算符详解

    Python3中的算术运算符详解 算术运算符的作用 Python3中的算术运算符用于执行基本的算术操作,包括加法、减法、乘法、除法、取模和幂运算。 下面是Python3中的算术运算符及其对应的操作: 符号 描述 + 加法 – 减法 * 乘法 / 除法 % 取模运算 ** 幂运算 加法运算 Python3中的加法运算符用于将两个数值相加。假设我们有两个变量a和…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部