Pandas可根據列名稱選取,還能夠根據列所在的position(數字,在第幾行第幾列,注意pandas行列的position是從0開始)選取。相關函數以下:python
1)loc,基於列label,可選取特定行(根據行index);函數
2)iloc,基於行/列的position;spa
3)at,根據指定行index及列label,快速定位DataFrame的元素;code
4)iat,與at相似,不一樣的是根據position來定位的;索引
5)ix,爲loc與iloc的混合體,既支持label也支持position;utf-8
The simplified rules of indexing areget
- Use
loc
for label-based indexing
- Use
iloc
for positional indexing
-
-
-
-
df = pd.read_csv(
'./iris_training.csv', low_memory=False)
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
-
-
行選擇
Pandas進行行選擇通常有三種方法:string
- 連續多行的選擇用相似於python的列表切片
- loc經過行標籤索引來肯定行的
- iloc經過行號索引來肯定行
-
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Name: 0, dtype: float64 """
-
-
-
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
df2 = df.drop([
1,2], axis=0)
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Passing list-likes to .loc or [] with any missing label will raise
-
KeyError in the future, you can use .reindex() as an alternative.
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
120 4 setosa versicolor virginica
-
-
-
-
-
-
-
-
120 4 setosa versicolor virginica
-
-
列選擇
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Name: 120, Length: 120, dtype: float64"""
-
-
-
print(df[[
'120', 'setosa']])
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
[120 rows x 2 columns] """
-
-
-
行列選擇
-
-
-
-
-
print(df.loc[
1:3, ['120', 'setosa']])
-
-
-
-
-
-
-
print(df.loc[
1:3, '120': 'setosa'])
-
-
-
-
-
-
-
print(df.iloc[
1:3, [1, 2]])
-
-
-
-
-
-
print(df.iloc[
1:3, 1:3])
-
-
-
-
總結
1).loc,.iloc,.ix,只加第一個參數如.loc([1,2]),.iloc([2:3]),.ix[2]…則進行的是行選擇pandas
2).loc,.at,選列是隻能是列名,不能是positionit
3).iloc,.iat,選列是隻能是position,不能是列名
4)df[]只能進行行選擇,或列選擇,不能同時進行列選擇,列選擇只能是列名。