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成为了朋友,接下来就让我们一起更加深入地了解他吧!

  在下一篇中,我们将了解到如何查找表的行与列,点击 此处 即可访问。

posted @ 2023-10-16 21:59  overxus  阅读(464)  评论(0编辑  收藏  举报