首页 > 其他分享 >pandas教程01: pandas的安装和基本操作

pandas教程01: pandas的安装和基本操作

时间:2023-10-16 22:13:01浏览次数:38  
标签:01 删除 df DataFrame 薪资 基本操作 csv 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开始的),之后我们将其保存到文件中时还会再提到这一点。

删除行

删除使用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_csv('薪资1.xlsx', index=False)

如果你在使用此函数时遇到错误:ModuleNotFoundError: No module named 'openpyxl',那么请安装下面这个库:

pip install openpyxl

安装完成后,再重新试下,应该就没有问题了。

 

5. 小结

恭喜你,已经和pandas成为了朋友,接下来就让我们一起更加深入地了解他吧!

以前写教程,差不多写到第2篇就没有后续了,希望这次能坚持下去。

标签:01,删除,df,DataFrame,薪资,基本操作,csv,pandas
From: https://www.cnblogs.com/overxus/p/pandas01.html

相关文章

  • 20231016-日记
    距离CSP还有5天上午-模拟赛总结T1-魔力子串考虑对于每个右端点找到它能匹配的状态,使用前缀和思想以方便统计.这里我们定义"状态"为前缀的各个字母的数量,减去最少得字母数量,经过化简,我们一定可以从前面相同的状态直接转移过来.因此可以开一个巨大的map,里面存的结......
  • [COCI2015-2016#4] ENDOR 题解
    [COCI2015-2016#4]ENDOR题解首先要发现一个很重要的性质,那就是两只变色龙碰撞后回头,等效于两只变色龙继续往前走,其中向右走的颜色不变,而向左走的要改变颜色。那这样就有一种\(O(n^2)\)的做法:对于向右的变色龙,直接贡献答案;对于向左的变色龙,我们按照碰到的先后顺序枚举它前面......
  • 20231016打卡
    上午的课程是铁道技术认知。在这门课上,我们学习了铁道的基础知识,包括受电弓、道岔变道器等。通过老师的讲解和课堂讨论,我们对铁道的运行和设备有了更深入的了解。在课程中,我们还通过虚拟仿真系统在计算机上学习了如何具体进行变轨操作和模拟动车组的运行。此外,通过沙盘的实际操作,......
  • Pandas与openpyxl库的超强结合,再见,Excel!
    前言用过Pandas和openpyxl库的同学都知道,这两个库是相互互补的。Pandas绝对是Python中处理Excel最快、最好用的库,但是使用openpyxl的一些优势是能够轻松地使用样式、条件格式等自定义电子表格。如果你又想轻松的使用Pandas处理Excel数据,又想为Excel电子表格添加一些样式,应该怎......
  • python操作excel三大模块对比(xlrd、openpyxl、pandas)
    1.pandasmatplotlib、numpy、pandas是入行数据分析的三个必须掌握的基础模块,这里介绍一下用pandas如何导入excel文件。安装比较简单,直接用pip工具安装三个库即可,安装命令如下$pip3installpandas安装完成提示Successfullyinstalled即表示安装成功。#1.导入pandas模......
  • Pandas 读取Eexcel
    间隔N行,读取某列数据importpandasaspddefread_vertical(sheet_name,col_idx,gap):"""竖着读数据,:paramsheet_name:第几个sheet:paramcol_idx:第几列,从0开始:paramstep:间隔:return:"""#header=None没有标题......
  • numpy基本操作
      1.3.1索引¶单个元素索引:一维数组、负数索引二维数组的索引1.3.2切片¶切片跨步索引数组:针对多为数组的索引索引结合切片 In [1]:importnumpyasnp In [2]:#一维数组索引array1=np.array([1,2,3,4,5])array......
  • [NOIP2010 提高组] 乌龟棋
    题目背景小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。题目描述乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数)。棋盘第11格是唯一的起点,第NN格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中MM张爬行卡片,分成44种不同的类型(MM张......
  • VA01/VA02/VA03 销售订单根据定价和步骤校验权限隐藏价格
    1、业务需求针对用户使用销售订单时,根据定价和步骤顺序,判断是否有权限,没有权限时隐藏销售订单抬头和行项目的部分价格数据要限制的定价和步骤在spro中的位置限制的步骤2、增强实现2.1权限对象创建带有定价和步骤的权限对象分配权限2.2、隐藏抬头和行项目价格隐藏抬头......
  • 设计模式01 —— 设计模式简介
    设计模式01——设计模式简介本教程参考:菜鸟教程-学的不仅是技术,更是梦想!(runoob.com)为本人学习笔记,和课程学习笔记,希望各位大佬多多指点!设计模式的简介设计模式可以看作一套被人反复使用的,多人知晓的代码设计的经验总结。设计模式是软件工程的基石。以下是完全版:设......