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
在下一节中,我们将学习查找表格内容。