使用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.索引單元格、行、列、矩陣的方法總結——思維導圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章