导入:
import pandas as pd
from pandas import Series,DataFrame
1、两个主要数据结构:Series和DataFrame
(1)Series是一种类似于一维数组的对象,由数据和标签组成;标签未传入则默认标签为0到N-1.
obj=Series([4,7,-5,3])
Out0 4
1 7
2 -5
3 3
obj.values=array([4,7,-5,3]);obj.index=Int64Index([0,1,2,3])
b 7
a -5
c 3
取值obj2['a']=-5;修改obj2['d']=6,则obj2[['c','a','d']]=
a -5
d 6
根据字典创建:sdata={'A':100,'B':200,'C':300};obj3=Series(sdata)(按键值有序排列)
B 200
C 300
states=['B','C','D'];obj4=Series(sdata,index=states)
C 300
D NaN(缺失值)
isnull和notnull函数用于检测缺失数据,pd.isnull(obj4)和pd.notnull(obj4)结果分别是:
C False True
D True False
算术运算中会自动对齐,obj3+obj4
B 400
C 600
D NaN
对象本身和索引都有name属性;索引可以通过赋值方式修改。
(2)DataFrame是一个表格型数据结构,含有一组有序的列,每列可以是不同的值类型。
等长字典构建。data={'A':['a','b','c'],'B':[1,2,3],'C':[0.1,0.2,0.3]};frame=DataFrame(data)(有序排列ABC);指定顺序排列DataFrame(data,columns=['B','C','A']);指定索引frame2=DataFrame(data,columns=['B','C','A','D'],index=['one',two','three'])
0 a 1 0.1 1 0.1 a one 1 0.1 a NaN
1 b 2 0.2 2 0.2 b two 2 0.2 b NaN
2 c 3 0.3 3 0.3 c three 3 0.3 c NaN
可以通过类似字典标记的方式或属性的方式,获取列为一个Series。frame2['A']或frame2.B;获取行用ix,frame2.ix['one'];列可以通过赋值方式修改,frame['D']=10或np.array(3.)。利用del删除列,如del frame2['D']。
嵌套字典构建,外层字典的键作为列,内层键作为行索引。
2、基本功能
(1)reindex创建一个适应新索引的新对象,根据新索引进行重排,某个索引值不存在,引入缺失值。fill_value填充空值,method=‘ffill'根据前一个值填充;‘bfill'后向填充。
(2)drop在指定轴上删除指定值的新对象。对于DataFrame,axis=0删除行,默认为行;axis=1删除列。
(3)利用标签的切片运算,末端是包含的。
3、算术运算和数据对齐
可以对不同索引的对象进行算术运算,相加的索引为索引的并集,不重叠的索引引入缺失值 。