数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(4)

前期准备

数据集在我的主页-资源里面有,完全免费
如果实在找不到可以通过文章最下面的合作链接联系我

本章的十道题与前面的试题相连接,数据集用的同一个数据集一些操作也是基于上一个练习的

本次导包多导入了一个绘图的包,在这里我们只是简单的应用,后面会有详细的讲解用法

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt 

数据集没有的可以私信我,也可以直接去我的资源里面找

df = pd.read_excel('data1.xlsx')
def fun(x):
    a,b = x.split('-')
    a = int(a.strip('k'))*1000
    b = int(b.strip('k'))*1000
    return int((a+b)/2)
df['salary'] = df['salary'].apply(fun)
bins = [0,5000,20000,50000]
group_names = ['底','中','高']
df['categories'] = pd.cut(df['salary'],bins,labels=group_names)
df

在这里插入图片描述

1. 计算salary列的中位数

中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。

# 方式1
np.median(df['salary'])
# 方式2
df['salary'].median()

在这里插入图片描述

2. 绘制薪资水平频率直方图

这个默认是分为10组,分别统计每组出现的次数

df.salary.plot(kind='hist')
# 改变分组数
df.salary.plot(kind='hist',bins=20)

在这里插入图片描述

3. 绘制薪资水平密度曲线

类似于频率直方图,只不过分组更小了,绘图方式采用的是曲线

df.salary.plot(kind='kde',xlim=(0,70000))

在这里插入图片描述

4. 删除最后一列categories

删除指定列

# 方式一 会直接删除原数据
del df['categories']  

# 方式二 默认不会删除原数据, 只有当inplace=True 才删除原数据
df.drop(columns=['categories'],inplace=True)  # 方式二

5. 将df的第一列与第二列合并为新的一列

因为这里的createTime列是时间序列,所以不能直接的合并,需要我们先将数据类型改变为str

# 将df的第一列与第二列合并为新的一列
# 需要将时间类型的数据装换成字符类型,使用的是`astype`类型
df['test'] = df['createTime'].astype('str')+ df['education']
df.head()

在这里插入图片描述

6. 将education列与salary列合并为新的一列

这个同第五题类似,都是合并两个列,都需要改数据类型
在这里插入图片描述

7. 计算salary列最大值与最小值之差

找出最大值和最小值做差

# 方式1
df['salary'].max()-df['salary'].min()
# 方式2 使用numpy中的方法
np.ptp(df['salary'])

在这里插入图片描述

8. 将第一行和最后一行拼接到一个DataFrame中

主要就是取对应行的操作和将不同的行合并起来

pd.concat([df[:1],df[-1:]])

在这里插入图片描述
另一种方式
取出数据然后将数据生成一个新的DataFrame

pd.DataFrame([df.iloc[0],df.iloc[-1]])

9. 将第8行数据添加到末尾

主要包括两个步骤,取出数据,添加数据

#  取出数据有两种信息
df[7:8]  # 使用切片操作
df.iloc[7]  # 使用.iloc取值

# 将第8行数据添加到末尾
df.append(df.iloc[7])

10. 查看每列的数据类型

dtypes 是属性,不用加括号

df.dtypes

# 也可以使用,但是展示的信息就比较多了
df.info()

本章我们学习了和合并列,添加新的行,删除指定列以及使用matplot
lib绘制一些简单的图形等功能,这些功能都是以后常用的,我在讲解的时候也拓展了不同的解题方式,希望大家发展思路,多多尝试。

期待大家的三连
在这里插入图片描述

  • 101
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 86
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼干儿♛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值