Pandas 数据分析例题

该文描述了如何使用PandasDataFrame进行一系列数据处理操作,包括将工号设为索引,将性别列中的male和female转换为M和F,计算员工的入职年数至2023年,筛选年龄大于等于35岁的女性员工信息,以及将女性员工的入职日期格式化为月/日/年格式。
摘要由CSDN通过智能技术生成

需求:

        将工号列(Job Number)设置为 DataFrame 的索引。

        将性别列(Gender)的所有 "male" 转换成 "M","female" 转换成 "F"。

        新增一列 "Service Year",表示每个员工的入职年数(入职年数计算至 2023 年)。

        选取所有年龄大于等于 35 岁的女性员工的姓名、工号、所在部门、性别和年龄这几列。

        将所有的女性员工的入职时间根据正则表达式提取出来,格式为 "月/日/年"。

现有DataFrame:

import pandas as pd

data = {"Name": ["Alice", "Bob", "Charlie", "David", "Emma", "Frank", "Grace"],
        "Job Number": ["E1001", "E1002", "E1003", "E1004", "E1005", "E1006", "E1007"],
        "Department": ["A", "A", "B", "B", "C", "C", "C"],
        "Gender": ["female", "male", "male", "male", "female", "male", "female"],
        "Age": [26, 30, 35, 40, 28, 45, 33],
        "Join Date": ["3/1/2020", "5/15/2018", "2/17/2015", "6/2/2010", "12/12/2019", "3/20/2013", "9/1/2017"]}

df = pd.DataFrame(data)

数据结果: 

	Name	Job Number	Department	Gender	Age	    Join Date
0	Alice	E1001	    A	        female	26	    2020-03-01
1	Bob	    E1002	    A	        male	30	    2018-05-15
2	Charlie	E1003	    B	        male	35	    2015-02-17
3	David	E1004	    B	        male	40	    2010-06-02
4	Emma	E1005	    C	        female	28	    2019-12-12
5	Frank	E1006	    C	        male	45	    2013-03-20
6	Grace	E1007	    C	        female	33	    2017-09-01

1.  将工号列(Job Number)设置为 DataFrame 的索引。

df = df.set_index('Job Number')

2.  将性别列(Gender)的所有 "male" 转换成 "M","female" 转换成 "F"。 

df['Gender'] = df['Gender'].replace('female','F')
df['Gender'] = df['Gender'].replace('male','M')

3.  新增一列 "Service Year",表示每个员工的入职年数(入职年数计算至 2023 年)

df['Join Date'] = pd.to_datetime(df['Join Date'])
df['Service Year'] = 2023 - df['Join Date'].dt.year

4.  选取所有年龄大于等于 35 岁的女性员工的姓名、工号、所在部门、性别和年龄这几列

dataf = df.loc[(df['Age']>=35) & (df['Gender'] == 'M')]
dataf.iloc[:,:4]

5.  将所有的女性员工的入职时间提取出来,格式为 "月/日/年"。

df.loc[df['Gender'] == 'F', 'Join Date'] = df[df['Gender'] == 'F']['Join Date'].dt.strftime('%m/%d/%Y')

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值