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

pandas是Python中常用的数据处理库,可用于处理表格,例如:

好好干文化有限公司员工薪资表

姓名 年龄 性别 年薪 奖金
久九刘 35 182600 42000
傅儿待 24 9960000 40000000
舍处 28 60000 18000

表格在日常办公中非常常见,例如excel, 数据库文件等,pandas使用DataFrame类表示表格。使用pandas时,首先将各类表格文件转为DataFrame,所有的表格操作都是在DataFrame上进行的,最后将处理后的DataFrame保存为指定文件。

 

1. 安装pandas

安装Python后,以下一行命令:

pip install pandas

就完成了安装。

 

我们常通过以下方式导入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')

导入excel文件:df = pd.read_excel('薪资.xlsx')

 

3. 基本操作

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

 

请注意,如果此时print(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.drop(["年龄", "年薪"], axis=1, inplace=True)

 

4. 保存DataFrame到文件

处理完成后,可以将表格保存为各种类型的文件。例如,保存为"薪资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

 

在下一节中,我们将学习查找表格内容。

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