Data Manipulation in Python -Data Frame indexing & slicing


老师,在第一个python notebook里:
df6 = df1.iloc[:,0:2] 结果不包括第三列的rain信息。
但是df9=df1.loc[1:3, [‘year’,’rain’]结果包括index为3的那一行(第四行)。
在看list index的时候,print(my_list3[ :3]也是不包括index 3.
什么情况是一定包括,什么情况一定不包括 (请看两张截图)?
谢谢老师.

  • 对于list index, [:3]一定是不包括index 3的。

  • iloc是purely positional的,它做data slicing只能使用index。因此用 df.iloc[:3, :],你会发现结果结果是前3行: row 0, row 1, row 2;

  • loc的用法与iloc不同。loc做data slicing是使用行标签。这里注意,标签不一定与index一样。比如,第0行数据的行标签可能是100。使用标签的时候,a:b 就是表示从a标签到且包括b标签。所以df.loc[1:3]会包括行标签为1,2,3 三行的数据。