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

news2024/9/21 18:54:16

文章目录

    • 前期准备
    • 1. 将create Time列设置为索引
    • 2. 生成一个和df长度相同的随机数DataFrame
    • 3. 将上一题生成的DataFrame与df合并
    • 4. 生成的新的一列new值为salary列减去之前生成的随机数列
    • 5. 检查数据中是否含有空值
    • 6. 将salary类型转换成浮点数
    • 7. 计算salary 大于10000的次数
    • 8. 查看education共有几种学历
    • 9. 查看每种学历出现的次数
    • 10. 提取salary与new的和大于60000的最后3行

本章的10道题仍然是基于前章的文件,主要学习了有设置索引、合并两个DataFrame对象、更改数据类型,不同列之间的运算,统计一列不同值得个数以及不同值分别出现得次数,还有如何灵活的运用布尔值运算。

前期准备

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

本次导包多导入了一个绘图的包,在这里我们只是简单的应用,后面会有详细的讲解用法
```python
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)

1. 将create Time列设置为索引

set_index() 将DataFrame的某一列快速设置成索引(index)默认会删除原来的列同样也可以是使用drop=False不删除原来的列

df.set_index('createTime')

在这里插入图片描述

2. 生成一个和df长度相同的随机数DataFrame

随机数的范围1-1000
随机生成

df1=pd.DataFrame(pd.Series(np.random.randint(1,1000,df.shape[0])))

3. 将上一题生成的DataFrame与df合并

其实这个题本质上就是合并两个DataFrame对象

  • 使用merge
    这个merge多用于内连接和外连接
pd.merge(df,df1) 
  • 使用concat
df = pd.concat([df,df1],axis=1)
df
  • 使用join
df.join(df1)

两个合并之后的情况
在这里插入图片描述

4. 生成的新的一列new值为salary列减去之前生成的随机数列

df['new'] = df['salary'].astype('int') - df['rom']
df

在这里插入图片描述

5. 检查数据中是否含有空值

isnull()对所有的元素判断是否是空值
在这里插入图片描述
any() 当序列中有一个True值时返回True否则返回False
all() 当序列中所有的值为True值时返回True否则返回False

df.isnull().values.any()

在这里插入图片描述

6. 将salary类型转换成浮点数

类型转换
这种方式并不会修改原数据,会返回一个修改后的新对象

df['salary'].astype('float') # 方式1
df['salary'].astype(np.float64) # 方式2

在这里插入图片描述

7. 计算salary 大于10000的次数

其实这个里面用了一个布尔值计算的等价计算

True代表1 False代表0

sum(df['salary']>10000)

8. 查看education共有几种学历

统计一列中的不同值得个数

# 方式1
df.education.nunique()
# 方式2
df['education'].nunique()

在这里插入图片描述

9. 查看每种学历出现的次数

统计每一种值出现得次数

df['education'].value_counts()  # 方式1

df.education.value_counts()     # 方式2

在这里插入图片描述

10. 提取salary与new的和大于60000的最后3行

推荐使用前两种

# 提取salary与new的和大于60000的最后3行
# 方式1
df[df['salary']+df['new']>60000].tail(3)
# 方式2
df[df['salary']+df['new']>60000][-3:]

# 方式3 
df2 = df[['salary','new']]
rowsums = df2.apply(np.sum,axis=1)
res = df.iloc[np.where(rowsums>60000)[0][-3:],:]
res

在这里插入图片描述

期待您的关注


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程之线程池

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、什么是线程池二.为什么要有线程池引入:为什么从池子里取,比创建线程速度要快什么是用户态,什么是内核态最终结论&#xf…

aws 负载均衡clb/nlb/alb

目录 概述 传统负载均衡器(Classic Load Balancer) DNS解析 健康检查(Health Check) 监听器(Listeners) 连接耗尽(Connection Draining) 粘性会话/会话关联(Sticky Sessions/…

(四)手写简单版MyBatis框架

文章目录环境搭建第一步:资源⼯具类第二步:定义SqlSessionFactoryBuilder类第三步:定义SqlSessionFactory类第四步:定义JDBC事务管理器第五步:定义数据源类第六步:定义MyMappedStatement类第七步&#xff1…

基于遗传算法卡车无人机旅行推销员问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Leetcode刷题111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:2 示例 2: 输入…

Python_机器学习_算法_第7章_7.拓展知识

Python_机器学习_算法_第7章_7.拓展知识 文章目录Python_机器学习_算法_第7章_7.拓展知识7.拓展知识7.1. 其他距离公式1 标准化欧氏距离2 余弦距离3 汉明距离【了解】4 杰卡德距离【了解】5 马氏距离【了解】7.2.再议数据分割1 留出法2 交叉验证法2.1 交叉验证法基本介绍2.2 KF…

ARM发布Cortex-X3和Cortex-A715

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 ARM公司发布了第二代 AR…

x86 smbus 下挂eeprom不能写问题

目录 背景 分析 驱动影响 SPD register 接口 只读 修改验证 总结 背景 x86 smbus上下挂一个eeprom,只能读取,不能写入。 写入命令采用: i2cset -y -f 0 0x50 0 0x33 即向总线0 下的0x50 地址的eeprom偏移量0 写入数据0x33, 命令…

哈夫曼树原理及Java编码实现

文章目录前言一、哈夫曼树原理二、哈夫曼编码(Java题解)参考资料前言 所有博客文件目录索引:博客目录索引(持续更新) 源代码:Gitee—Huffman.java、Github—Huffman.java 一、哈夫曼树原理 对于哈夫曼树的构造以及权值计算原理…

Java语言高级-10MySQL-第2节MySQL安装与使用

2、MySQL数据库软件 1、安装 详细见视频 2、卸载 1、去mysql的安装目录找到my.ini文件 “复制datadir “C:/programData/MySQL/MySQL Server 5.5/Data” 2、卸载MySQL 控制面板->程序卸载,但是此时并没有卸载干净 3、删除C:/ProgramData目录下得MySQL文件夹 注意…

java 内部类

小镇做题家 前段时间很火的一个话题“小镇做题家”,我没有具体了解,我以为是在鼓励一些努力拼搏的人。 某一天,禁不住好奇,我打开了百度百科,看了看小镇做题家的解释 就是指一些村里或者小镇的人,通过学习…

模板和泛型编程(上)

目录函数模板泛型编程函数模板概念及原理函数模板的实例化函数模板的匹配原则类模板类模板实例化函数模板 泛型编程 泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器…

猿创征文|Python迭代器、生成器、装饰器、函数闭包

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 Python迭代器、生成器、装饰器、函数闭包1. 迭代器 iterator☞迭代器协议☞Python中的for循环2. 生成器…

C语言qsort()函数针对:整型、单个字符、字符串、结构体,超详细讲解(多维度分析举例,小白一看就懂!!!!!)

目录 一、前言 二、qsort()函数 🍑qsort()函数简介 🍉qsort()函数中整型、double型、字符型的应用 💦整型 💦 double型 💦字符排序 🍎qsort()函数在字符串中的应用 💦在字符串中按首字母…

Android NDK开发基础

文章目录cmake语法基础cmake添加日志:cmake增加宏字符串比较cmake在build.gradle中传递编译参数到cmake通过javah生成native对应的c头文件jni和java之间字符串的相互操作JavaVM和JNIEnv字符串的编码native方法静态注册和动态注册静态注册动态注册extern cC中STATIC和…

SpringCloud Alibaba-Sentinel保姆级教程

文章目录1、Sentinel前奏1.1、服务雪崩效应1.2、常见容错方案1、隔离2、超时3、限流4、熔断5、降级1.3、常见容错组件1、Hystrix2、Resilience4J3、Sentinel2、Sentinel入门2.1、什么是Sentinel2.2、实战编码1、安装Sentinel服务端2、微服务引入Sentinel2.3、Sentinel流控模式1…

YOLOv5蒸馏 | 知识蒸馏理论篇 | 1/2

之前在《一文搞懂【知识蒸馏】【Knowledge Distillation】算法原理》这篇文章中介绍过一些知识蒸馏的原理,这篇博文将会着重介绍目标检测领域的知识蒸馏原理。 文章目录 1.《Object detection at 200 Frames Per Second》1.1 蒸馏难点1.2 蒸馏损失1.3 实验结果2. 《Learning E…

计算机毕业设计ssm+vue基本微信小程序的体检预约小程序

项目介绍 我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,体检预约系统小程序被用户普遍使用,为方便用户…

【前端】CSS(1) —— CSS的基本语法和一些简单的选择器

JavaEE传送门JavaEE 网络原理——网络层与数据链路层 【前端】HTML入门 —— HTML的常见标签 目录CSS基本语法注释引入方式内部样式内联样式外部样式代码风格样式格式样式大小写空格规范CSS 选择器标签选择器类选择器id 选择器通配符选择器复合选择器后代选择器子选择器并集选…

文件包含漏洞和hash破解

介绍 Windows是当今世界最主要的操作系统,因为它易于使用的GUI可访问性。大约85%的市场份额已成为攻击的关键操作系统。此外,大多数组织使用Active Directory来设置其Windows域网络。微软聘请NTLM(New Technology LAN Manager)和…