使用pandas选择和索引数据方法大全,附思维导图

使用pandas索引和选择数据时,总是需要百度,因此决定对pandas.DataFrame中的索引和选择方法做个总结。
pandas中有三种主要索引方法:

  • [] :基本切片方法
  • .loc :基于标签
  • .iloc :基于位置
  • 注意:.ix的用法在0.20.0中已经不建议使用了!

本文所有的索引和选择都是对以下这个DataFrame进行:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(1,31).reshape(6,5), columns=list('ABCDE'), index=list('abcdef'))
    A   B   C   D   E
a   1   2   3   4   5
b   6   7   8   9  10
c  11  12  13  14  15
d  16  17  18  19  20
e  21  22  23  24  25
f  26  27  28  29  30

1.[] :基本切片方法

1.1 []操作只能直接索引列标签,可传入一列或离散的多列(list)

print(df['A'])        #等价于df.A
a     1
b     6
c    11
d    16
e    21
f    26
print(df[['A', 'C']])
    A   C
a   1   3
b   6   8
c  11  13
d  16  18
e  21  23
f  26  28

1.2可以用冒号,根据行的位置索引连续的多行

print(df[1:3])       #如果传入[n:n+1]可以索引第n行
    A   B   C   D   E
b   6   7   8   9  10
c  11  12  13  14  15

1.3 根据一列布尔数组进行索引

print(df[df.A > 15])
    A   B   C   D   E
d  16  17  18  19  20
e  21  22  23  24  25
f  26  27  28  29  30

2. .loc :基于标签的索引方法

2.1 选择一行或离散的多行,传入一个值或一个列表

print(df.loc['c'])          #选择一行时返回series对象
A    11
B    12
C    13
D    14
E    15

2.2选择连续的多行,要注意这里会包含结束行,即‘f’行

print(df.loc['c' : 'e'])      #返回dataframe对象,包括结束行
    A   B   C   D   E
c  11  12  13  14  15
d  16  17  18  19  20
e  21  22  23  24  25

2.3 选择多行之后可以进一步筛选列(其实就是对DataFrame用[]筛选列)

print(df.loc['c':'e'][['A', 'B']])
    A   B
c  11  12
d  16  17
e  21  22

3. .iloc :基于位置的索引方法

1.1 传入一个数值或列表,代表索引行

print(df.iloc[1])       #1是行顺序,返回第二行,数据类型为series
A     6
B     7
C     8
D     9
E    10

1.2 数值加冒号,索引连续的多行

print(df.iloc[1:3])
    A   B   C   D   E
b   6   7   8   9  10
c  11  12  13  14  15

1.3 加个逗号,索引一个单元格

print(df.iloc[1, 2])           #返回value矩阵中(2,3)的值
8

1.4 逗号加冒号,索引一个矩阵

print(df.iloc[0:3, 0:3])  #返回3x3矩阵
    A   B   C
a   1   2   3
b   6   7   8
c  11  12  13

1.5 很自然,逗号前为冒号,就可以根据位置索引列了

print(df.iloc[:, 1:3])
    B   C
a   2   3
b   7   8
c  12  13
d  17  18
e  22  23
f  27  28

4.索引单元格、行、列、矩阵的方法总结——思维导图

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值