read_csvで読み込んだデータ(データフレーム)の列を選択します。
分析の目的に応じて必要・不要なデータを取捨選択する際に必須な操作です。

対象のデータフレーム: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

 

列選択を行う
例1

# age列を1列だけ選択
data1[["age"]]

例2

# age,gender,income列の3列を選択
data1[["age", "gender", "income"]]

例1の結果

       age
0       25
1       38
2       28
3       44
4       18
5       34
...

例2の結果

       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
...

 

.locメソッドを使う書き方

例3

# age列を1列だけ選択
data1.loc[:,["age"]]

例4

# age,gender,income列の3列を選択
data1.loc[:,["age", "gender", "income"]]

例3の結果

       age
0       25
1       38
2       28
3       44
4       18
5       34
...

例4の結果

       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
...

 

※.locメソッドを使う?使わない?
使わない方が記述は楽です。
しかし、.locメソッドを使うことで、行の選択ができるようになります。
使い方をいくつか。

例5

# age列の、0番目の行を選択
data1.loc[0, ["age"]]

例6

# 0番目の行をすべて選択
data1.loc[0, :]

例5の結果

age    25
Name: 0, dtype: object

例6の結果

age                               25
workclass                    Private
fnlwgt                        226802
education                       11th
educational-num                    7
marital-status         Never-married
occupation         Machine-op-inspct
relationship               Own-child
race                           Black
gender                          Male
capital-gain                       0
capital-loss                       0
hours-per-week                    40
native-country         United-States
income                         <=50K
Name: 0, dtype: object

 

上記を見るとわかるように、カンマを挟んで以下のようにすることで、指定した行名・列名に一致するデータが選択できます。

(選択するデータ).loc[(行名), (列名)]

行・列名を指定しない場合は「:」を指定することで、すべての行・列を対象にします。
R言語ユーザーの方であれば、.locメソッドを使用するほうがしっくり来ると思います。

 

※.head()と組み合わせて、一部を表示する
headメソッドを組み合わせることができます。

例7

# age,gender,income列の3列を選択し、最初の5行を表示
data1.loc[:,["age", "gender", "income"]].head()

例7の結果

   age  gender income
0   25    Male  <=50K
1   38    Male  <=50K 2 28 Male >50K
3   44    Male   >50K
4   18  Female  <=50K

範囲、列番号を指定しての列選択も今後紹介していきます。