Pandas提供高性能的数据分析工具,此库主要提供了两个数据类型:Series和DataFrame(基于ndarray的数据类型)。
Pandas对象特征:
相比于Numpy关注于数据的结构表达,Pandas更关注数据的应用表达,尤其是索引,通过对索引的改变,可以达到对数据改变的效果。
Series类型:
组成:Series类型由数据及其索引组成
创建与索引:
自定义索引:b=pd.Series([9,8,7,6],index=[‘a’,‘b’,‘c’,‘d’])
a 9
b 8
c 7
d 6
dtype: int64
默认索引:b=pd.Series([9,8,7,6])
0 9
1 8
2 7
3 6
dtype: int64
生成,创建方法:
标量创建:
s=pd.Series(25,index=['a','b','c'])
a 25
b 25
c 25
dtype: int64
字典创建:
d=pd.Series(dict)
生成的Series索引为字典的键,一 一对应字典的数值
或
e=pd.Series({'a':1,'b':2,'c':3},index=['c','a','b','d'])
c 3
a 1
b 2
d NaN
dtype: float32
ndarray创建:
n=pd.Series(np.arang(23))
n=pd.Series(np.arange(5),index=np.arange(9,4,-1))
0 9
1 8
2 7
3 6
4 5
dtype: int32
基本操作:
索引:
b.index返回的是index类型数据
Index(['a', 'b', 'c', 'd'], dtype='object')
b.values返回的是array数据
<PandasArray> [9, 8, 7, 6] Length: 4, dtype: int64
现在有b=pd.Series([9,8,7,6],index=[‘a’,‘b’,‘c’,‘d’])
有两种索引方式,一种是自定义索引b[‘a’]=9,一种是自动索引b[0]=9
在索引时,必须使用同一套索引。
在同时对多个元素进行索引时,返回一个Series。
例如:
b[['a','b',0]]#混合使用时当做自定义索引
a 9
b 8
0 NaN
切片:切片的返回依然是一个Series类型
b[:3]
a 9
b 8
c 7
dtype :int64
运算:
b[b>b.median()]
a 9
b 8
np.exp(b)
索引不变,值进行指数运算
同字典一样,可以使用保留字in和.get()方法:
在字典中,判断对象是否处于键中,而Series判断是否存在自定义索引列表中:
'c' in b
True
0 in b
False
b.get('f',100)提取标签f对应的数值,要是不存在则返回100
对齐操作:
b=pd.Series([1,2,3,4],index=['a','b','c','d'])
v=pd.Series([1,2,3,4],index=['a','z','c','k'])
b+v
a 2.0
b NaN
c 6.0
d NaN
k NaN
z NaN
dtype: float64
name属性:
b.name="这是Series对象"
b.index.name="索引列"
则b显示为
索引列
a 1
b 2
c 3
d 4
Name: 这是Series对象, dtype: int64
修改:
b[‘a’]=12,此时索引a对应的值已经修改
b[‘a’,‘b’]=12,此时a,b对应的值都修改为12