python中iloc切片_Dataframe选择行列loc,iloc,切片,布尔索引,条件判断等

Dataframe的行标签和列标签其实都是一种索引,每一行也对应位置索引(0到length-1)。Dataframe是dict-like类型,可以通过df[xx]的形式选择单列、多列(传入列表)。Dataframe也是list-list类型,可以通过切片选择数据。基于这些特性,我们可以用直接索引、loc、iloc三个方式来选择数据!

1、直接索引和切片

假设有个二维数据,行索引为A、B、C,列索引为AA、BB、CC,我们按照直接索引或者选取数据,先看一下:

df['A']和df[0] # 都是错误 KeyError

df['BB'] #单列,是Series

df[['BB']] #单列,是DataFrame

df[['BB','CC']] # 两列

df['A':'C'] # 行标签切片,末端包含,返回3行

df[0:2] # 行位置索引切片,末端不包含,返回2行

df[::-1] # 切片,行索引倒过来为CBA

df[[True,False,True]] #选择2行,布尔值是根据行来的

注意事项:df切片是按照行标签或者行的位置索引来的。标签索引切片为末端包含,位置索引切片为末端不包含(切片特性等同于列表)。下面看看代码演示:

df = pd.DataFrame([[1, 2,3], [4, 5,6], [7, 8,9]],

index=['A', 'B', 'C'],

columns=['AA', 'BB','CC'])

print(df['BB'])

print('---------')

print(df[['BB']])

print('---------')

print(df[['BB','CC']])

print('---------')

print(df[0::2])

print('---------')

print(df['A':'C':2])

print('---------')

print(df[::-1])

A 2

B 5

C 8

Name: BB, dtype: int64

---------

BB

A 2

B 5

C 8

---------

BB CC

A 2 3

B 5 6

C 8 9

---------

AA BB CC

A 1 2 3

C 7 8 9

---------

AA BB CC

A 1 2 3

C 7 8 9

---------

AA BB CC

C 7 8 9

B 4 5 6

A 1 2 3

2、loc方式

loc方式比较灵活,可以传入2个"参数"作为条件来分别控制行列选取。

假设有个二维数据,行索引为A、B、C,列索引为AA、BB、CC,loc方式可以有很多花样,先看下

df.loc['A'] # 1行,返回series

df.loc[['A']] # 这是个dataframe,行数是1行

df.loc[['A','B']] # 2行

df.loc['A','AA'] # 标量,单元格的值

df.loc[['A','B'],['AA','CC']] # 2行2列

df.loc['A':'C','AA':'CC'] # 3行3列(切片方式)

df.loc[

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值