1、Pandas简介
pandas是python的核心数据支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观的出路关系型、标记型数据。
1.1Pandas处理的数据类型
与SQL或Excel表类似的,含异构列的表格数据;
有序和无序(非固定频率)的时间序列数据;
带行列标签的矩阵数据,包括异构或同构型数据;
任意其他形式的观测、统计数据集,数据转入Pandas。
Pandas处理浮点与非浮点数据里的缺失数据,表示为NaN。
Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),
大小可变:插入或删除 DataFrame 等多维对象的列
自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 Series、DataFrame 计算时自动与数据对齐
2、Pandas的数据结构
Series:一维维数,带标签的一维同构数组
DataFrame:二维维数,带标签的,大小可变的,二维异构表格。
Pandas 数据结构就像是低维数据的容器。比如,DataFrame 是 Series 的容器,Series 则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。
处理 DataFrame 等表格数据时,index(行)或 columns(列)比 axis 0 (也代表行)和 axis 1 (代表列)更直观。
2.1数据结构大小可变与数据复制
Pandas 所有数据结构的值都是可变的,但数据结构的大小并非都是可变的,比如,Series 的长度不可改变,但 DataFrame 里就可以插入列。
Pandas 里,绝大多数方法都不改变原始的输入数据,而是复制数据,生成新的对象。 一般来说,原始输入数据不变更稳妥。
3、Pandas入门
3.1Series对象
Series对象是一个带索引的数据构成的一维数组,用数组生成创建,一组数据和一组索引是绑定在一起的。
创建Series对象
pd.Series(data,index=名称)
import numpy as np #导入数据库numpy和pandas
import pandas as pd
s = pd.Series([1,3,5,np.nan,6,8]) #Series:一维数据结构
s
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
可以通过values属性和index属性获取数据
使用values属性获取数据值
s.values
array([ 1., 3., 5., nan, 6., 8.])
使用index查看索引号
s.index
RangeIndex(start=0, stop=6, step=1)
index也可以加上行的名称
#index代表:行名
D = pd.Series([0.25,0.5,0.75,1.0],index=['a','b','c','d'])
D
a 0.25
b 0.50
c 0.75
d 1.00
dtype: float64
使用字典创建一个Series对象
P = {'cal' : 38332,
'Texes':26448,
'New':19651,
'Flo':19552,
'Ill':12882}
P
pop = pd.Series(P)
pop
cal 38332
Texes 26448
New 19651
Flo 19552
Ill 12882
dtype: int64
3.2 DataFrame对象
DataFrame包含既有灵活的行索引,又有灵活的列名的二维数组。
创建DataFrame对象:df=pd.Dataframe(data,index=行名,columns=列名)
#用含有日期时间索引与标签的Numpy数组生成DataFrame
import numpy as np #导入数据库numpy和pandas
import pandas as pd
dates = pd.date_range('20200615',periods = 6)
dates
DatetimeIndex(['2020-06-15', '2020-06-16', '2020-06-17', '2020-06-18',
'2020-06-19', '2020-06-20'],
dtype='datetime64[ns]', freq='D')
#np.random.randn(6,4)代表生成6行四列的随机数据
#index代表:行名,index=dates:索引是dates数据
#columns代表:列名,columns=lisr('ABCD'):代表列名为表格(‘ABCD’)
df = pd.DataFrame(np.random.randn(6,4),index = dates,columns=list('ABCD'))
df
#获取行索引标签
df.index
DatetimeIndex(['2020-06-15', '2020-06-16', '2020-06-17', '2020-06-18',
'2020-06-19', '2020-06-20'],
dtype='datetime64[ns]', freq='D')
#获取列索引标签
df.columns
Index(['A', 'B', 'C', 'D'], dtype='object')
查看DAtaFrame头部和尾部数据
#查看头部
df.head()
#查看后三行数据
df.tail(3)
#查看索引名
df.index
#查看列名
df.columns