pandas 数据选择方法很多,本文讲一下 loc 和 iloc 的区别,其他 带 i 和 不带 i 的用法类似

 

iloc:index locate,用 index 定位,这里的 index 是自然下标,也就是自然计数的行列位置,并不是 dataframe 自带的 index

  也可以这么理解,int locate,用整型下标

loc:用 dataframe 自带的 index 进行数据选择

 

示例

import numpy as np
import pandas as pd

np.random.seed(100)

data = np.random.randint(1, 100, (10, 3))
data = pd.DataFrame(data, index=np.linspace(1, 19, 10).astype(np.int))
print(data)
#     0   1   2
# 1    9  25  68
# 3   88  80  49
# 5   11  95  53
# 7   99  54  67
# 9   99  15  35
# 11  25  16  61
# 13  59  17  10
# 15  94  87   3
# 17  28   5  32
# 19   2  14  84


##### iloc: index locate,用 index 定位,这里的索引是 行列数,并不是 dataframe 自带的索引
### 也可以这么理解, int locate, 输入是整形
print(data.iloc[3:5, :])
#    0   1   2
# 7  99  54  67
# 9  99  15  35         # 索引并不是 3 5 而是 7 9,取的是df的第3 4 行


##### loc:直接用 dataframe 自带的索引进行数据选择
print(data.loc[3:5, :])
#     0   1   2
# 3  88  80  49
# 5  11  95  53         # 索引是 3 5,取的是 df 索引是 3 到 5 的行

 

 

参考资料: