- Pandas是Python最重要的数据分析工具包,是Panel Data Analysis的缩写,也是目前最为流行的Python数据分析工具。最初被作为金融数据分析工具由全球资产管理公司AQR于2008年4月开发,并于2009年底开源出来。
- Matplotlib和Seaborn是最为常用的数据可视化的工具包,解决如何通过数据来绘制图表,来更好的展示数据。
- NumPy是一个用于数值运算的Python库,专门对数值运算进行优化,最大的优势是快。Pandas底层数据结构采用NumPy来实现,我们也可以把Pandas理解成是对NumPy的封装,让数据分析的一些功能的实现变得更容易。
Pandas
安装
1 | pip install pandas |
Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
- 作用:
- 数据读写
- 数据整理
- 数据分析
Pandas的数据被分为三部分: 行索引(index), 列索引(columns)及数据内容(data).
- 先写一段代码看一下数据结构运行后
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19# 导入pandas模块
import pandas
# 通过Series存储每个英雄的基本信息
# 创建Series
s1 = pandas.Series([101, '鲁班', '18', '150.00', '男'])
s2 = pandas.Series([102, '小乔', '19', '167.00', '女'])
s3 = pandas.Series([103, '关羽', '30', '180.00', '男'])
s4 = pandas.Series([104, '大乔', '20', '170.00', '女'])
s5 = pandas.Series([105, '孙策', '22', '185.00', '男'])
series_list = [s1, s2, s3, s4, s5]
# 创建一个DataFrame对象存储通讯录
df = pandas.DataFrame(series_list)
# 打印刚刚构造的DataFrame
print(df)1
2
3
4
5
6
7D:\study\workon\ScrapyStudy\Scripts\python.exe D:/study/ScrapyStudy/study_pandas/demo1.py
0 1 2 3 4
0 101 鲁班 18 150.00 男
1 102 小乔 19 167.00 女
2 103 关羽 30 180.00 男
3 104 大乔 20 170.00 女
4 105 孙策 22 185.00 男Series 的创建
Series是Pandas中最基本的对象,Series类似一种一维数组。事实上,Series 基本上就是基于 NumPy 的数组对象来的。和 NumPy 的数组不同,Series 能为数据自定义标签,也就是索引(index),然后通过索引来访问数组中的数据。打印结果1
2
3
4
5
6# 导入Series
from pandas import Series, DataFrame
# 创建Series,使用默认索引
sel = Series(data=[101, '鲁班', '18', '150.00', '男'])
print(sel)一个Series其实就是一条数据,Series方法的第一个参数是data,第二个参数是index(索引),如果没有传值会使用默认值(0-N)。1
2
3
4
5
6
7D:\study\workon\ScrapyStudy\Scripts\python.exe D:/study/ScrapyStudy/study_pandas/demo2.py
0 101
1 鲁班
2 18
3 150.00
4 男
dtype: object加入索引
打印结果1
2
3
4
5
6
7
8# 导入Series
from pandas import Series, DataFrame
# 创建Series,使用默认索引
sel = Series(data=[101, '鲁班', '18', '150.00', '男'],
index=['ID号', '姓名', '年龄', '身高', '性别']
)
print(sel)1
2
3
4
5
6
7D:\study\workon\ScrapyStudy\Scripts\python.exe D:/study/ScrapyStudy/study_pandas/demo2.py
ID号 101
姓名 鲁班
年龄 18
身高 150.00
性别 男
dtype: object
在创建Series时数据并不一定要是列表,也可以将一个字典传进去。
==
当数据是字典的时候,会将字典的键作为索引,字典的值作为索引对应的数据值==
1 | from pandas import Series,DataFrame |
1 | red 100 |
==index参数是我们自定义的索引值,注意:参数值的个数一定要相同==
Series是一组带索引数组,与list相似,一般我们用其承装一条数据或者一行数据。多个Series可组成一个DataFrame
DataFrame 的创建
DataFrame(数据表)是一种 2 维数据结构,数据以表格的形式存储,分成若干行和列。通过 DataFrame,你能很方便地处理数据。
调用DataFrame()可以将多种格式的数据转换为DataFrame对象,它的的三个参数data、index和columns分别为数据、行索引和列索引。DataFrame的数据结构类似Excel或者SQL中表
1 | from pandas import Series, DataFrame |
m_list 是使用一个二维列表,将每一个信息存储到一个列表中
调用DataFrame()将二维列表转换为DataFrame对象,行列索引使用的是默认0-N数字代表。
可以通过给DataFrame构造函数中的参数index
,columns
传值,来设定DataFrame的中的行列索引的值。
1 | from pandas import Series, DataFrame |
也可以使用字典来创建一个DataFrame数据
1 | from pandas import Series, DataFrame |
当字典格式的数据被dataframe整理后,字典的键将作为数据的列索引值
通过 DataFrame,能很方便地处理数据。常见的操作比如选取、替换行或列的数据,还能重组数据表、修改索引、多重筛选等。我们基本上可以把 DataFrame 理解成一组采用同样索引的 Series 的集合。