Python取列和行
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 因为可以直接定义到标签