列名選択と同様に、列番号選択もよく使う選択方法です。

対象のデータフレーム:data1

In [8]: data1.head()
Out[8]:
   age  workclass  fnlwgt     education  educational-num      marital-status  \
0   25    Private  226802          11th                7       Never-married
1   38    Private   89814       HS-grad                9  Married-civ-spouse
2   28  Local-gov  336951    Assoc-acdm               12  Married-civ-spouse
3   44    Private  160323  Some-college               10  Married-civ-spouse
4   18          ?  103497  Some-college               10       Never-married

          occupation relationship   race  gender  capital-gain  capital-loss  \
0  Machine-op-inspct    Own-child  Black    Male             0             0
1    Farming-fishing      Husband  White    Male             0             0
2    Protective-serv      Husband  White    Male             0             0
3  Machine-op-inspct      Husband  Black    Male          7688             0
4                  ?    Own-child  White  Female             0             0

   hours-per-week native-country income
0              40  United-States  <=50K
1              50  United-States  <=50K
2              40  United-States   >50K
3              40  United-States   >50K
4              30  United-States  <=50K

列番号を指定して列を選択

.ilocメソッドを使います。
基本的な記述ルールは.locメソッドと同じです。
.locメソッドは名前を検索するものでしたが、番号(index)で検索するので、iが付く、と覚えるとよいでしょう。
注意すべきは、pythonの場合は、順番を表す番号が0から始まる点です。
なので、1列名を選択する場合は1減らした0を指定しないといけません。
2列名以降も同様です。

例1

# age列1列だけ選択
data1.iloc[:, [0]]

例1の結果

Out[17]:
       age
0       25
1       38
2       28
3       44
4       18
5       34
...

例2

# age(1列目),gender(10列目),income(15列目)列の3列を選択
data1.iloc[:, [0, 9, 14]]

例2の結果

In [18]: data1.iloc[:, [0, 9, 14]]
Out[18]:
       age  gender income
0       25    Male  <=50K
1       38    Male  <=50K
2       28    Male   >50K
3       44    Male   >50K
4       18  Female  <=50K
5       34    Male  <=50K
...

 

※どの列名がどの番号かを探すのが面倒な場合
横に長いデータだと、選択したい番号が何番目かわかりづらいので、探しやすくしましょう。
.columnsメソッドで列名が取り出せ、それをpandasの.DataFrameメソッドでデータフレーム可するとよいでしょう。

例3

# 列名をデータフレーム化して列番号を探しやすくする
pd.DataFrame(data1.columns)

例3の結果

Out[19]:
                  0
0               age
1         workclass
2            fnlwgt
3         education
4   educational-num
5    marital-status
6        occupation
7      relationship
8              race
9            gender
10     capital-gain
11     capital-loss
12   hours-per-week
13   native-country
14           income

 

※データの長さに寄らず、一番最後(右)の列を選択したい場合
データ列の長さを取得し、そのデータを用いて選択することができます。
データ列の長さはlenメソッドを使うことで取得できます。

例4

# データの列数を取得
column_length = len(data1.columns)
column_length

例4の結果

Out[20]: 15

定義したcolumn_lengthの中には15という数値が入っているので、-1した14が一番右の列番号です。

例5

# 一番左の列(age)と、一番右の列(income)を取得
data1.iloc[:, [0, (column_length - 1)]]

例5の結果

Out[21]:
       age income
0       25  <=50K
1       38  <=50K
2       28   >50K
3       44   >50K
4       18  <=50K
5       34  <=50K
...

.locメソッドと.ilocメソッドは列選択でよく使うメソッドなので必ず覚えておきましょう。