使用一个二维数组并指定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]]

图片说明