Pandas
Pandas基础1:数据类型
一、Series
- 一维数组,由key(相关的数据索引标签),和values(一组数据ndarray)组成
- 可以把Series看成一个定长的有序字典
创建
- 由列表或numpy数组创建,默认索引为
0
到n-1
的整数型索引 - 由numpy数组创建时,
Series
对象指向原来numpy数组的地址 index
指定索引name
指定名称copy
新建地址
pd.Series(data=[1, 2, 3, 4, 5], index=list('abcde'), name='名称', copy=False)
- 由字典创建
- 字典的
key
自动变成索引
pd.Series(dict(a=1, b=2, c=3))
索引
- 枚举型索引:特征索引是连续数值
- 关联型索引:特征索引都是离散字符类型
- 显式索引:使用index中的关联类型作为索引值,使用
.loc[ ]
(推荐) - 隐式索引:使用整数作为索引值,使用
.iloc[ ]
(推荐)
s = pd.Series(dict(a=1,b=2,c=3,d=4))
s['a'], s[1], s.c
s.loc['a'],s.iloc[1]
⇒
\Rightarrow
⇒ 1,2,3
⇒
\Rightarrow
⇒ 1,2
切片
s[0:-1]
s['a':'d']
s.loc['a':'d'] # 显式切片
s.iloc[0:-1] # 隐式切片
⇒ \Rightarrow ⇒ 1,2,3,4
属性方法
ndim
维度shape
形状size
尺寸dtype
数据类型index
索引keys()
键(索引)values
值nbytes
大小head()
快速查看tail()
快速查看
二、DataFrame
DataFrame
是一个【表格型】的数据结构,可以看做是【由Series组成的字典】(共用同一个索引)。DataFrame
由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame
既有行索引,也有列索引,,可以看成二维的Series- 行索引:
index
- 列索引:
columns
- 值:
values
(numpy的二维数组)
创建
- 由numpy数组创建
pd.DataFrame(data=np.random.randint(1,20,(5,4)) ,index=['a','b','c','d','e'] ,columns=list('ABCD'))
- 由字典列表创建
- 字典的
key
自动变成列索引:columns
pd.DataFrame(data=[{'a': 1, 'b': 2, 'c': 3}, {'a': 1, 'd': 2, 'c': 3}, {'a': 2, 'b': 3, 'c': 4}])
索引
对列进行索引
- 通过类似字典的方式
- 通过属性的方式
- 可以将
DataFrame
的列获取为一个Series
。返回的Series
拥有原DataFrame
相同的索引,且name
属性也已经设置好了,就是相应的列名。
data = pd.DataFrame(data=np.random.randint(1,20,(5,4)) ,index=['a','b','c','d','e'] ,columns=list('ABCD'))
data['A'],data.A
DataFrame的中括号,只能获取列索引。
对行进行索引
- 使用
.loc[ ]
加index来进行行索引 - 使用
.iloc[ ]
加整数来进行行索引 - 同样返回一个Series,index为原来的columns。
data.loc['a'].B, data.T.a.B
对元素索引的方法
- 使用列索引
- 使用行索引(
iloc[3,1]
相当于两个参数;iloc[[3,3]]
里面的[3,3]
看做一个参数) - 使用
values
属性(二维numpy数组)
data.iloc[0,0]
切片
- 显式切片
iloc
data.loc['a':'e', '2':]
- 隐式切片
iloc
data.iloc[0:-1,2:]
属性方法
基本继承Series的属性
index
行索引columns
列索引ndim
维度shape
形状size
尺寸dtype
数据类型keys()
键(索引)values
值nbytes
大小head()
快速查看tail()
快速查看info()
信息大小