4.1 数据分析-excel 基本操作
第四节:数据分析-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函数