Pandas 是一个开源的数据分析和操作库,它是 Python 编程语言的一个扩展。Pandas 提供了快速、灵活和表达能力强的数据结构,旨在使数据清洗和分析工作变得更加简单易行。
1.为什么要学习pandas?
- numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢?
- numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类型的数据(字符串,时间序列),那么pandas就可以帮我们很好的处理除了数值型的其他数据!
2.series
2.1创建Series
- Series是一种类似与一维数组的对象,由下面两个部分组成:
- values:一组数据(ndarray类型)
- index:相关的数据索引标签
from pandas import Series
s = Series([1,2,3,'four'])
s
也可以和numpy模块一起创建
import numpy as np
s = Series(data=np.random.randint(1,6,size=(5)))
s
2.2使用imdex来构建索引
s = Series(data=np.random.randint(1,6,size=(5)),index=['a','b','c','d','e'])
s
输出结果为:
a 3
b 2
c 2
d 4
e 5
dtype: int32
那么为什么需要有显示索引?
显示索引可以增强Series的可读性
dic = {
'语文':100,
'数序':80,
'英语':60
}
s = Series(data=dic)
s
输出结果为
语文 100
数序 80
英语 60
dtype: int64
2.3Series的索引和切片
还是沿用2.2的代码
s[0:2]
结果为:
语文 100
数序 80
dtype: int64
2.4Series的一些常用属性
- shape
- size
- index
- values
s.shape
s.size
s.index #返回索引
s.values #返回值
s.dtype #元素的类型
2.5Series的常用方法
- head(),tail()
- unique()
- isnull(),notnull()
- add() sub() mul() div()
2.5.1head()和tail()
- head()显示前n个数据
- tail()显示后n个数据
s = Series(data=np.random.randint(1,100,size=(9)))
s
s.head(3)
s.tail(3)
2.5.2unique()
s.unique() #去重
2.5.3isnull()
s.isnull() #用于判断每一个元素是否为空,为空返回True,否则返回False
3.DataFrame
- DataFrame是一个【表格型】的数据结构。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。
- 行索引:index
- 列索引:columns
- 值:values
3.1DataFrame的创建
- ndarray创建
- 字典创建
from pandas import DataFrame
d = DataFrame(data=np.random.randint(1,10,size=(3,4)))
d
dic = {
'name':['zhangsan','lisi','wangwu'],
'salary':[100,200,300]
}
d = DataFrame(data=dic,index=['a','b','c'])
d
3.2DataFrame的属性
- values、columns、index、shape
3.3DataFrame的切片和索引操作
- 索引:
- df[col]:取列
- df.loc[index]:取行
- df.iloc[index,col]:取元素
- 切片:
- df[index1:index3]:切行
- df.iloc[:,col1:col3]:切列
df = DataFrame(data=np.random.randint(1,100,size=(8,4)),columns=['a','b','c','d'])
df
df.loc[0]
df.loc[0:3]