Python | iloc和loc的区别

Python取列和行

      • 1 生成DataFrame
      • 2 取第a列
        • 2.1 方法1
        • 2.2 方法2
        • 2.3 方法3
      • 3 取倒数第一行的值
        • 3.1 法1
        • 3.2 方法2
      • 4 取第1行到第3行
      • 5 取第2行第3列的值
        • 5.1 方法1
        • 5.2 方法2
      • 6 总结

import pandas as pd
  • 获取列 首先在pandas中我们想要获取一列,很简单,df[‘A’]

  • 获取行 有loc和iloc的方法

  • loc:works on labels in the index.(索引+列名)

  • iloc:works on the positions in the index (so it only takes integers).(行号 从0开始)

1 生成DataFrame

df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))
# np.arange(0,60,2) 表示以2为步长从0走到60 按行来!
df
a b c
0 0 2 4
1 6 8 10
2 12 14 16
3 18 20 22
4 24 26 28
5 30 32 34
6 36 38 40
7 42 44 46
8 48 50 52
9 54 56 58

2 取第a列

2.1 方法1

df.loc[:, 'a'] # 取第a列
0     0
1     6
2    12
3    18
4    24
5    30
6    36
7    42
8    48
9    54
Name: a, dtype: int64

2.2 方法2

df['a']
0     0
1     6
2    12
3    18
4    24
5    30
6    36
7    42
8    48
9    54
Name: a, dtype: int64

2.3 方法3

df.iloc[:, 0]
0     0
1     6
2    12
3    18
4    24
5    30
6    36
7    42
8    48
9    54
Name: a, dtype: int64

3 取倒数第一行的值

3.1 法1

df.iloc[-1] # 取倒数第一行的值
a    54
b    56
c    58
Name: 9, dtype: int64
df.iloc[2]
a    12
b    14
c    16
Name: 2, dtype: int64
df.iloc[-1,:] # 也可以直接用-1即可
a    54
b    56
c    58
Name: 9, dtype: int64

3.2 方法2

df.loc[df.index.max()]
a    54
b    56
c    58
Name: 9, dtype: int64
df.loc[df.index.max(), :]
a    54
b    56
c    58
Name: 9, dtype: int64

4 取第1行到第3行

df.iloc[1:4]
a b c
1 6 8 10
2 12 14 16
3 18 20 22

5 取第2行第3列的值

5.1 方法1

df.loc[1, 'c']
10

5.2 方法2

df.iloc[1, 2]
10

6 总结

  • 无论是iloc还是loc 均采用[]而不是括号
  • 如果只是取行 建议用iloc 因为比较简单
  • 如果列和行同时取 建议采用loc 因为可以直接定义到标签

你可能感兴趣的:(Python,Python取行,Python取列,iloc,loc,pandas)