Pandas 入门 15 题

Pandas 入门 15 题

  • 1. 相关知识点
    • 1.1 修改DataFrame列名
    • 1.2 获取行列数
    • 1.3 显示前n行
    • 1.4 条件数据选取值
    • 1.5 创建新列
    • 1.6 删去重复的行
    • 1.7 删除空值的数据
    • 1.9 修改列名
    • 1.10 修改数据类型
    • 1.11 填充缺失值
    • 1.12 数据上下合并
    • 1.13 pivot_table透视表的使用
    • 1.14 melt透视表的使用
    • 1.15 条件查询及排序
  • 2. 题目
    • 2.1 从表中创建 DataFrame((Pandas 数据结构)
    • 2.2 获取 DataFrame 的大小(数据检验)
    • 2.3 显示前三行(数据检验)
    • 2.4 数据选取(数据选取)
    • 2.5 创建新列(数据选取)
    • 2.6 删去重复的行(数据清理)
    • 2.7 删去丢失的数据(数据清理)
    • 2.8 修改列(数据清理)
    • 2.9 重命名列(数据清理)
    • 2.10 改变数据类型(数据清理)
    • 2.11 填充缺失值(数据清理)
    • 1.12 重塑数据:连结(表格重塑)
    • 1.13 数据重塑:透视(表格重塑)
    • 2.14 重塑数据:融合(表格重塑)
    • 2.15 方法链(高级技巧)

1. 相关知识点

1.1 修改DataFrame列名

data=pd.DataFrame(student_data,columns=['student_id','age'])

1.2 获取行列数

players.shape

1.3 显示前n行

employees.head(n)

1.4 条件数据选取值

students.loc[students['student_id']==101,['name','age']]
students[students['student_id']==101][['name','age']]
students.query('`student_id`==101')[['name','age']]

1.5 创建新列

  • 处理数据的时候,根据已知列得到新的列,可以考虑使用pandas.DataFrame.assign()函数
  • 使用assign函数不会改变原数据,而是返回一个新的DataFrame对象,包含所有现有列和新生成的列
  • 注意:assign和apply函数的主要区别在于前者不改变原数据,apply函数是在原数据的基础上添加新列
employees['bonus']=employees['salary'].apply(lambda x:x*2)
employees=employees.assign(bonus=employees.salary*2)
employees['bonus']=employees['salary']*2

1.6 删去重复的行

customers.drop_duplicates(subset=['email'],keep='first')

1.7 删除空值的数据

# axis=0代表行
students.dropna(subset=['name'],how='any', axis=0,inplace = False)

1.9 修改列名

data=data.rename(columns={'Dest':'iata_code','index':'from'})
students.columns=['student_id','first_name','last_name','age_in_years']

1.10 修改数据类型

students['grade']=students['grade'].astype('int')

1.11 填充缺失值

products['quantity'].fillna(0,inplace=True)# products.replace({'quantity':{# None:0# }},inplace=True)

1.12 数据上下合并

df1._append(df2)
# pd.concat([df1,df2],axis=0)

1.13 pivot_table透视表的使用

weather.pivot_table(index='month',values='temperature',columns='city',aggfunc='sum')

1.14 melt透视表的使用

  • df.pivot() 将长数据集转换成宽数据集,df.melt() 则是将宽数据集变成长数据集
pd.melt(report,id_vars['product'],var_name='quarter',value_name='sales')

1.15 条件查询及排序

animals[animals['weight'] > 100].sort_values(by='weight', ascending=False)

2. 题目

2.1 从表中创建 DataFrame((Pandas 数据结构)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef createDataframe(student_data: List[List[int]]) -> pd.DataFrame: data=pd.DataFrame(student_data,columns=['student_id','age'])return data
student_data=[[1,15],[2,11],[3,11],[4,20]]print(createDataframe(student_data))

2.2 获取 DataFrame 的大小(数据检验)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef getDataframeSize(players: pd.DataFrame) -> List[int]:return list(players.shape)

2.3 显示前三行(数据检验)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef selectFirstRows(employees: pd.DataFrame) -> pd.DataFrame:return employees.head(3)

2.4 数据选取(数据选取)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef selectData(students: pd.DataFrame) -> pd.DataFrame:return students.loc[students['student_id']==101,['name','age']]# return students[students['student_id']==101][['name','age']]# return students.query('`student_id`==101')[['name','age']]

2.5 创建新列(数据选取)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef createBonusColumn(employees: pd.DataFrame) -> pd.DataFrame:employees['bonus']=employees['salary'].apply(lambda x:x*2)# employees=employees.assign(bonus=employees.salary*2)# employees['bonus']=employees['salary']*2return employees

2.6 删去重复的行(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef dropDuplicateEmails(customers: pd.DataFrame) -> pd.DataFrame:return customers.drop_duplicates(subset=['email'],keep='first')

2.7 删去丢失的数据(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef dropMissingData(students: pd.DataFrame) -> pd.DataFrame:# axis=0代表行return students.dropna(subset=['name'],how='any', axis=0,inplace = False)

2.8 修改列(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef modifySalaryColumn(employees: pd.DataFrame) -> pd.DataFrame:employees=employees.assign(salary=employees.salary*2)# employees['salary']=employees['salary'].apply(lambda x:x*2)# employees['salary']=employees['salary']*2return employees

2.9 重命名列(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef renameColumns(students: pd.DataFrame) -> pd.DataFrame:students.columns=['student_id','first_name','last_name','age_in_years']# dic={#     'id':'student_id',#     'first':'first_name',#     'last':'last_name',#     'age':'age_in_years'}# students=students.rename(columns=dic)return students

2.10 改变数据类型(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef changeDatatype(students: pd.DataFrame) -> pd.DataFrame:students['grade']=students['grade'].astype('int')return students

2.11 填充缺失值(数据清理)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef fillMissingValues(products: pd.DataFrame) -> pd.DataFrame:products['quantity'].fillna(0,inplace=True)# products['quantity']=products['quantity'].fillna(0)# products.replace({'quantity':{# None:0# }},inplace=True)return products

1.12 重塑数据:连结(表格重塑)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef concatenateTables(df1: pd.DataFrame, df2: pd.DataFrame) -> pd.DataFrame:return df1._append(df2)# return pd.concat([df1,df2],axis=0)

1.13 数据重塑:透视(表格重塑)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef pivotTable(weather: pd.DataFrame) -> pd.DataFrame:return weather.pivot_table(index='month',values='temperature',columns='city',aggfunc='sum')# return weather.set_index(['month','city']).unstack()['temperature

2.14 重塑数据:融合(表格重塑)

在这里插入图片描述
在这里插入图片描述

import pandas as pddef meltTable(report: pd.DataFrame) -> pd.DataFrame:report=pd.melt(report,id_vars=['product'],var_name='quarter',value_name='sales')return report

2.15 方法链(高级技巧)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pddef findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame:animals = animals[animals['weight'] > 100].sort_values(by='weight', ascending=False)return animals[['name']]

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Vue实现前后端分离 spring框架返回json数据中文乱码

java json数据返回值中文乱码 出现&#xff1f;&#xff1f;&#xff1f; - _xkoko - 博客园 (cnblogs.com) 引入js的script标签到底是放在head还是body中_html页面中用<script>标签引入js代码,该标签放在<head>标签中和放在<body>标签-CSDN博客 vue.js 的问…

golang结合neo4j实现权限功能设计

neo4j 是非关系型数据库之图形数据库&#xff0c;这里不再赘述。 传统关系数据库基于rbac实现权限, user ---- role ------permission,加上中间表共5张表。 如果再添上部门的概念&#xff1a;用户属于部门&#xff0c;部门拥有 角色&#xff0c;则又多了一层&#xff1a; user-…

MySQL之备份与恢复(七)

备份与恢复 文件系统快照 规划LVM备份 LVM快照备份也是有开销的。服务器写到原始卷的越多&#xff0c;引发的额外开销也越多。当服务器随机修改许多不同块时&#xff0c;磁头需要需要自写时复制空间来来回回寻址&#xff0c;并且将数据的老版本写到写时复制空间。从快照中读…

网络基础:IS-IS协议

IS-IS&#xff08;Intermediate System to Intermediate System&#xff09;是一种链路状态路由协议&#xff0c;最初由 ISO&#xff08;International Organization for Standardization&#xff09;为 CLNS&#xff08;Connectionless Network Service&#xff09;网络设计。…

Windows电脑下载、安装VS Code的方法

本文介绍Visual Studio Code&#xff08;VS Code&#xff09;软件在Windows操作系统电脑中的下载、安装、运行方法。 Visual Studio Code&#xff08;简称VS Code&#xff09;是一款由微软开发的免费、开源的源代码编辑器&#xff0c;支持跨平台使用&#xff0c;可在Windows、m…

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_3【二十二】

在前面的几期博文中有过解析去除apk中功能权限的反编译步骤。另外在以往博文中也列举了修改apk中选项功能权限的操作方法。今天以另外一款apk作为演示修改反编译去除软件功能限制的步骤。兴趣的友友可以参考其中的修改过程。 课程的目的是了解apk中各个文件的具体作用以及简单…

【经验篇】Spring Data JPA开启批量更新时乐观锁失效问题

乐观锁机制 什么是乐观锁&#xff1f; 乐观锁的基本思想是&#xff0c;认为在大多数情况下&#xff0c;数据访问不会导致冲突。因此&#xff0c;乐观锁允许多个事务同时读取和修改相同的数据&#xff0c;而不进行显式的锁定。在提交事务之前&#xff0c;会检查是否有其他事务…

浏览器插件利器-allWebPluginV2.0.0.14-stable版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

【音视频 | RTSP】RTSP协议详解 及 抓包例子解析(详细而不赘述)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

catia数控加工仿真铣平面粗加工

1&#xff0c;零件建模&#xff0c;毛坯建模 2 在毛坯上建立坐标系 3 添加资料刀具 4&#xff0c;双击对相关加工信息做设置 5 Roughing 加工设置 高亮红色区域是必选的&#xff0c;其他可以默认 6 完成加工仿真 7 加工余量

Android zygote访谈录

戳蓝字“牛晓伟”关注我哦&#xff01; 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章&#xff0c;技术文章也可以有温度。 本文摘要 本文以访谈的方式来带大家了解zygote进程&#xff0c;了解zygote进程是啥&#xff1f;它的作用是啥&#xff1f;它是如何一步…

从零开始开发跑腿配送系统:技术选型与架构设计

开发一个跑腿配送系统涉及多个技术栈和模块&#xff0c;从前端到后端&#xff0c;再到数据库和实时通信&#xff0c;每一个环节都至关重要。本文将详细介绍从零开始开发跑腿配送系统的技术选型与架构设计&#xff0c;并提供部分代码示例以帮助理解。 一、技术选型 前端技术&am…

国产化新标杆:TiDB 助力广发银行新一代总账系统投产上线

随着全球金融市场的快速发展和数字化转型的深入推进&#xff0c;金融科技已成为推动银行业创新的核心力量。特别是在当前复杂多变的经济环境下&#xff0c;银行业务的高效运作和风险管理能力显得尤为重要。总账系统作为银行会计信息系统的核心&#xff0c;承载着记录、处理和汇…

Linux网络管理

一、linux网络管理 1.获取计算机的网络信息 基本语法&#xff1a; #ifconfig #ip address &#xff08;ip a&#xff09; 解析&#xff1a; ens33&#xff1a;默认网卡 lo&#xff1a;环回网卡&#xff0c;127.0.0.1作为固定ip代表本机 virbr0&#xff1a;虚拟网络接口&…

Python入门 2024/7/3

目录 for循环的基础语法 遍历字符串 练习&#xff1a;数一数有几个a range语句 三个语法 语法1 语法2 语法3 练习&#xff1a;有几个偶数 变量作用域 for循环的嵌套使用 打印九九乘法表 发工资案例 continue和break语句 函数的基础定义语法 函数声明 函数调用 …

探索Linux:开源世界的无限可能

Linux是一款开源操作系统&#xff0c;它的起源可以追溯到上世纪90年代初。这个故事始于一个名叫Linus Torvalds的芬兰大学生&#xff0c;他在1983年开始编写一个用于个人电脑的操作系统内核。在他的努力下&#xff0c;Linux逐渐发展成为一个稳定而强大的操作系统。 然而&#…

Apache Seata配置管理原理解析

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata配置管理原理解析 说到Seata中的配置管理&#xff0c;大家可能会想到Seata中适配…

盘点8款国内顶尖局域网监控软件(2024年国产局域网监控软件排名)

局域网监控软件对于企业网络管理至关重要&#xff0c;它们可以帮助IT部门维护网络安全&#xff0c;优化网络性能&#xff0c;同时监控和控制内部员工的网络使用行为。以下是八款备受推崇的局域网监控软件&#xff0c;每一款都有其独特的优势和适用场景。 1.安企神软件 试用版领…

【机器学习实战】Datawhale夏令营:Baseline精读笔记2

# AI夏令营 # Datawhale # 夏令营 在原有的Baseline上除了交叉验证&#xff0c;还有一种关键的优化方式&#xff0c;即特征工程。 如何优化特征&#xff0c;关系着我们提高模型预测的精准度。特征工程往往是对问题的领域有深入了解的人员能够做好的部分&#xff0c;因为我们要…

护网在即,知攻善防助力每一位安服仔~

前言 是不是已经有师傅进场了呢~ 是不是有安服&#x1f412;在值守呢~ 您是不是被网上眼花缭乱的常用应急响应工具而烦恼呢&#xff1f; 何以解忧&#xff1f;唯有知攻善防&#xff01; 创作起源&#xff1a; 驻场、护网等&#xff0c;有的客户现场只允许用客户机器&…