使用一个二维数组并指定index和column创建一个DataFrame对象,我更喜欢这种方式创建DataFrama对象,例如
import numpy as np data=pd.DataFrame(np.random.randint(0,10,(3,2)),index=list('abc'),columns=list('de')) data
运行结果
Series对象值得切片与索引,代码如下
a=pd.Series([1,2,3,4,5],index=list('abcde')) print(a['d'],'\n',a[1],'\n',a[1:3],'\n',a['a':'c'])
索引的时候可以按着标签索引,也可以按着位置索引,进行切片操作的时候同样是两种切片方式,不同的是按照标签切片的时候是左闭右闭,按照位置切片是左闭右开的,运行结果如下
在索引的时候,有时标签我们也用数字,本身的位置索引也是数字,就比较混乱,怎么解决呢,发明人已经注意到这个问题啦,使用loc(标签索引)和iloc(位置索引)进行区别,例如
b = pd.Series([2,4,1,5,7],index=[1,2,3,4,5]) b.loc[1],b.iloc[1]
运行结果
但是标签给定方式不同的时候,会出现错误,不知道是为什么,例如上边的index=[1,2,3,4,5],当改为index=list('12345')的时候就不能使用标签索引,可以位置索引,使用标签索引会出错。
b = pd.Series([2,4,1,5,7],index=list('12345')) b.iloc[1]
暂时还不知道原因
获取DataFrame里边的元素,某几行几列,连续的行或者列,不连续的行或者列
区别是,获得连续的行/列,行/列之间用:,不连续的用[,],代码如下,先创建一个DataFrame
data=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('ABCD')) data
#获取连续行连续列的元素 data.iloc[0:2,1:3]
#获取非连续行连续列的元素 data.iloc[[0,2],[0,2]]