pandas教程01: pandas的安装和基本操作
pandas是Python中常用的数据处理库,主要用来处理表格数据,类似于下面这种:
| 姓名 | 年龄 | 性别 | 年薪 | 奖金 |
| 久九刘 | 35 | 男 | 182600 | 42000 |
| 傅儿待 | 24 | 男 | 9960000 | 40000000 |
| 舍处 | 28 | 女 | 60000 | 18000 |
大家想一想,无论是日常办公使用的excel还是数据库,是不是都是上面这种形式的数据?pandas使用DataFrame统一表示这类表格数据。
DataFrame是什么?这并不重要,把它看作上面的这种表格就好。只要知道在使用pandas时,我们需要将文件里保存的数据转化为DataFrame,所有的操作都是在DataFrame上进行的,最后将处理好的DataFrame保存为文件。大致就是这个流程。
1. 安装和导入pandas
在使用pandas前,我们需要安装它,安装方式很简单,在安装了Python后,以下一行命令:
pip install pandas
就完成了安装。
使用时,首先需要导入pandas库。在Python中我们常通过以下方式导入pandas库:
import pandas as pd
即用别名pd替代pandas, 这已经成为了一种共识。
2. 从文件中导入表格
pandas为常见的文件提供了导入的接口,例如xlsx, csv, sqlite等等。
我们以csv文件为例,新建一个文件"薪资.csv",用记事本打开后,复制以下内容到此文件中:
姓名,年龄,性别,年薪,奖金
久九刘,35,男,182600,42000
傅儿待,24,男,9960000,40000000
舍处,28,女,60000,18000
通过以下代码,将"薪资.csv"文件里的数据导入为DataFrame:
df = pd.read_csv('薪资.csv')
这样,我们导入"薪资.csv"中的数据为DataFrame, 并保存在变量df中。
如果想导入excel格式的文件,可以写为:
df = pd.read_excel('薪资.xlsx')
3. 对DataFrame的基本操作
现在我们看看df是什么,使用print(df)可以看到以下输出:
姓名 年龄 性别 年薪 奖金
0 久九刘 35 男 182600 42000
1 傅儿待 24 男 9960000 40000000
2 舍处 28 女 60000 18000
可以看到, df就是一张表格。不过请注意,df的最左边多了0, 1, 2这一列,这是因为pandas会为表格中的每一行添加行号(请注意,行号是从0开始的,计算机习惯从0开始计数),之后我们将其保存到文件中时还会再提到这一点。
删除行
删除使用drop方法。如果我们想要删除一行,这时候就使用刚才提到的行号,比如说删除第1行:
df.drop(1)
得到的结果如下:
姓名 年龄 性别 年薪 奖金
0 久九刘 35 男 182600 42000
2 舍处 28 女 60000 18000
如果想同时删除多行,可以通过列表指定多行。例如同时删除第0、2行:
df.drop([0, 2])
得到的结果如下:
姓名 年龄 性别 年薪 奖金
1 傅儿待 24 男 9960000 40000000
需要注意的是,如果我们此时查看df, df并没有发生改变。这是因为pandas默认不对原表格处理,会复制一份新的结果返回给用户(想一想,这样是不是可以避免误操作损坏原先的数据?)。如果你想直接在df上操作,可以在drop中指定参数inplace=True(这个参数默认为False).
df.drop([0, 2], inplace=True)
如果此时查看df,就会发现df的第0行和第2行已经被删掉了。
删除列
删除列也是使用drop, 不过需要指定参数axis=1, 表示对列操作(此参数默认为0, 表示对行操作). 例如删除“性别”这一列:
df.drop("性别", axis=1, inplace=True)
这行代码表示在df上直接删除性别这一列。删除多列和删除多行类似,传入一个列表参数即可,例如删除“年龄”和“年薪”这两列:
df.drop(["年龄", "年薪"], axis=1, inplace=True)
4. 保存DataFrame到文件
在我们处理好表格df后,可以将表格保存为xlsx, csv等文件。例如保存到文件"薪资1.csv"中:
df.to_csv('薪资1.csv')
不过,如果此时打开"薪资1.csv"文件,你会发现行号这一列也被保存到文件中。多数情况下,并不需要行号这一列,此时可以指定参数index=False:
df.to_csv('薪资1.csv', index=False)
现在再打开文件,就会发现行号这一列消失了。
如果想要保存为excel文件,例如保存为"薪资1.xlsx":
df.to_excel('薪资1.xlsx', index=False)
如果你在使用此函数时遇到错误:ModuleNotFoundError: No module named 'openpyxl',那么请安装下面这个库:
pip install openpyxl
安装完成后,再重新试下,应该就没有问题了。
5. 小结
恭喜你,已经和pandas成为了朋友,接下来就让我们一起更加深入地了解他吧!
在下一篇中,我们将了解到如何查找表的行与列,点击 此处 即可访问。
pandas教程01: pandas的安装和基本操作的更多相关文章
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- Tkinter系列教程01—引言和安装Tk—Python GUI编程
目录 Tkinter教程系列01--引言和安装Tk 引言 什么是Tkinter 安装 Tk 为 Windows 安装 Tk 验证是否安装正确 为 GNU/Linux 安装 Tk 使用 Linux 的包 ...
- 数据分析之pandas教程-----概念篇
目录 1 pandas基本概念 1.1 pandas数据结构剖析 1.1.1 Series 1.1.2 DataFrame 1.1.3 索引 1.1.4 pandas基本操作 1.1.4. ...
- Python 数据处理库pandas教程(最后附上pandas_datareader使用实例)
0 简单介绍 pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有 ...
- Tkinter教程系列01——引言和安装Tk
Tkinter教程系列01--引言和安装Tk 首发于我的个人博客 https://chens.life/tkinter-tutorial-chapter-01-introduction-and-ins ...
- Pandas教程目录
Pandas数据结构 Pandas系列 Pandas数据帧(DataFrame) Pandas面板(Panel) Pandas基本功能 Pandas描述性统计 Pandas函数应用 Pandas重建索 ...
- Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结
pandas数据预处理 / pandas data pre-processing 目录 关于 pandas pandas 库 pandas 基本操作 pandas 计算 pandas 的 Series ...
- pandas小记:pandas时间序列分析和处理Timeseries
http://blog.csdn.net/pipisorry/article/details/52209377 其它时间序列处理相关的包 [P4J 0.6: Periodic light curve ...
- TensorFlow DeepLab教程初稿-tensorflow gpu安装教程
TensorFlow DeepLab教程初稿-tensorflow gpu安装教程 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com Summar ...
- Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录
一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...
随机推荐
- 技术分享 | 不同格式标准SBOM清单横评:SPDX、CDX和DSDX
为了保证安全性.降低开发.采购及维护的相关成本,复杂动态的现代软件供应链对软件资产透明度提出了更高的要求.使用清晰的软件物料清单(SBOM)收集和共享信息,并在此基础上进行漏洞.许可证和授权管理等,可 ...
- 为什么我要迁移SpringBoot到函数计算
前言 为什么要迁移? 我们的业务有很多对外提供服务的 RESTful API,并且要执行很多不同的任务,例如同步连锁 ERP 中的商品信息到美团/饿了么等平台,在线开发票等.由于各种 API 和任务执 ...
- vue 中安装使用jquery
https://www.cnblogs.com/tcz1018/p/13970479.html
- C++ ——vector数组笔记
vector 是 C++ 标准库中的一个动态数组容器(Sequence Container),它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小.它是一个非常常用且强大的容器,用于存储一系列元 ...
- css - 使用 figure 和 figcaption 快速实现 图片加文字的垂直方向的布局 ( 不支持ie9以下版本 )
一,属性介绍 1. 浏览器支持 注释:Internet Explorer 8 以及更早的版本不支持 <figure> 标签.Internet Explorer 9, Firefox, Op ...
- 阿里云ECS自建K8S_IPV6重启后异常问题解决过程
阿里云ECS自建K8S_IPV6重启后异常问题解决过程 背景 最近安装了一个单节点的K8S_IPV6 昨天不知道何故 突然宕机了. 然后只能在阿里云的控制台后台重启了ECS 启动之后看K8S的状态一开 ...
- SQLServer数据库JDBC连接串参数的简单学习
SQLServer数据库JDBC连接串参数的简单学习 背景 前段时间一直跟同事一起处理SQLServer 比其他数据库的deadlock更多的问题. 涉及到了几个驱动的参数. 想着问题基本上告一段落, ...
- SQLServer解决deadlock问题的一个场景
SQLServer解决deadlock问题的一个场景 背景 公司产品出现过很多次dead lock 跟研发讨论了很久, 都没有具体的解决思路 但是这边知道了一个SQLServer数据库上面计划100% ...
- [转帖]Linux系统安装之后,如何调节CPU性能策略
https://baize.cc/posts/efc.html#:~:text=Linux%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E4%B9%8B%E5%90%8E% ...
- [转帖]怎么查看Linux服务器硬件信息,这些命令告诉你
https://zhuanlan.zhihu.com/p/144368206 Linux服务器配置文档找不到,你还在为查询Linux服务器硬件信息发愁吗?学会这些命令,让你轻松查看Linux服务器的C ...