第四节:数据分析-excel 基本操作
课程目标
- 学会excel 基本操作
课程内容
数据伪造
产生一份招聘数据
import pandas as pd
from faker import Faker
import random
import numpy as np
# 创建一个Faker实例,用于生成假数据,指定中文本地化
fake = Faker('zh_CN')
# 定义一些可能的公司大小和领域
company_sizes = ['小型', '中型', '大型']
company_fields = ['科技', '金融', '教育', '医疗', '制造']
# 准备数据集
data = []
for i in range(1000):
city = fake.city_name() if random.random() > 0.1 else np.nan # 10% 的概率生成缺失值
full_name = fake.company()
company_id = fake.uuid4()
short_name = full_name[:2]
size = random.choice(company_sizes)
job_title = fake.job()
business_district = fake.street_address()
department = job_title
education_requirement = random.choice(['本科', '硕士', '博士', '无要求'])
field = random.choice(company_fields)
job_id = fake.uuid4() if random.random() > 0.1 else np.nan # 10% 的概率生成缺失值
benefits = ', '.join(random.sample(['五险一金', '带薪年假', '年终奖', '股票期权', '弹性工作'], random.randint(1, 5)))
salary = random.randint(3000, 50000) if random.random() > 0.1 else np.nan # 10% 的概率生成缺失值
experience_required = f"{random.randint(1, 10)}年"
# 上班时间 8:00-10:00
start_work_time = f"{random.randint(8, 10)}:00"
end_work_time = f"{random.randint(18, 20)}:00"
data.append([city, full_name, company_id, short_name, size, business_district, department, education_requirement, field, job_id, benefits, job_title, salary, experience_required,start_work_time, end_work_time])
# 将数据转换为DataFrame
df = pd.DataFrame(data, columns=[
'城市', '公司全名', '公司ID', '公司简称', '公司大小', '公司所在商区', '职位所属', '教育要求', '公司所属领域', '职位ID', '职位福利', '职位', '薪水', '工作年限要求',"上班时间","下班时间"
])
# 写入Excel文件
df.to_excel('company_data.xlsx', index=False)
df.to_csv('company_data.csv', index=False)
print("数据已成功写入Excel文件。")
格式化
根据文本自动调整列宽

数据清洗
缺失值处理
- 定位缺失值
分别点击A列,B列,C列…

查看每列字数确定哪些列缺失

- 定位缺失值选中缺失列

- 处理缺失值
-
删除

-
填充固定值 输入框输入值,按ctrl+enter

-
填充特殊值(平均值,总数,中位数)求出值后,方法同上
-
数值型
求和
比如我们要求所有薪资总量,使用SUM函数

求均值
使用AVERAGE函数

求众数
MODE.SNGL函数

中位数
函数MEDIAN

统计数量
COUNT函数

有值的有896个,说名有缺失值
文本型
查找
比如看下哪些公司有带薪年假,有则为位置,没有则为0,需要FIND函数和IFERROR函数配合使用

字符长度
如获取福利待遇长度,后面通过该长度对优秀公司排序
LEN函数
在这里插入图片描述
左截取
比如获取公司名字简称,可以用LEFT函数

右截取
比如要获取公司类型,用RIGHT函数,截取后6个字符

连接
比如将上下班时间连在一起
CONCATENATE函数

分析
排行
获取当前福利待遇的排行 RANK函数

筛选满足条件的并排行




















