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 的行
参考资料: