Pandas的索引与切片
Pandas提供了多种索引模式与切片方法,因为常常混用,导致实际每次使用起来并不熟练,在此整理DataFrame的索引与切片方式,给出几种常用的切片方式。
Label-based方法
- 找某一列:
DataFrame.loc[:,'column0'] - 找某几列:
DataFrame.loc[:,['column0','column1','column2']] - 找某一行:
DataFrame.loc['index',:] - 找某几行:
DataFrame.loc[['index0','index1','index2'],:] - 布尔索引:
DataFrame.loc[boolean expression]
可见,.loc的功能非常强大,包括两种模式.loc[[行],[列]],.loc[布尔表达式]
Position-based方法
- 找某一列:
DataFrame.iloc[:1] - 找某几列:
DataFrame.iloc[:,[0,1,2]] - 找某一行:
DataFrame.iloc[1,:] - 找某几行:
DataFrame.iloc[[0,1,2],:] - 布尔索引:
DataFrame.iloc[boolean expression]
iloc是.loc的位置模式,只能依据位置(在DataFrame中并不显式存储)来索引,在使用中并不算常用。
getitem方法
[]就是getitem方法,这个方法常常造成混淆。所以尽量避免使用。
DataFrame['column0']返回对应列的Series,这与Python直观的存储并不相符。