Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Pandasで特定の列ラベルだけを表示

Pandasで特定の複数の列を選んで表示させる方法の解説

Pandasで複数の特定の列の情報だけを取得・表示させる方法の解説

今回はPythonでPandasを使ったデータ分析の基礎として、Pandasで特定の列を選んで表示させる方法の解説です。これができるだけで、かなりデータが見やすくなるのでぜひ練習してみてください。といってもとても簡単です。

環境

今回の記事で作業する環境は、Visual Studio Code上でJupyter Notebookを動かすものでDockerを使った環境です。使用するデータなども含めてその作業環境の構築方法などについては次の記事を御覧ください。

方法その1

Pandasで特定の列の情報だけを表示させるには以下の2つの方法があります。今回は次のような表(データフレーム)を例にして解説します。このデータフレームでの列ラベルとは、「PassengeerID」とか「Survived」「Pclass」などのことです。

1つの列だけを表示する方法

まず1つの列だけを表示させてみましょう。今回は次のようにAgeという列ラベルのついた列だけを表示させます。

Pandasで特定の列ラベルだけを表示

この場合は次ように入力します。

pandas.データフレーム['列ラベルの名称']

たとえば、今回ならば次のようにします。

import pandas as pd

(略)

train_df = pd.read_csv()

train_df["Age"]

この実行結果はこうなります。

Pandasで特定の列ラベルだけを表示

上のデータフレーム全体の画像と見比べてもらうとわかるように、きちんとAgeという列の情報だけが取得・表示できています。

なお、このように1列だけの情報を取得したときそのオブジェクトの型を調べると、

type(train_df['Age'])

その結果は、

<class 'pandas.core.series.Series'>

このように、DataFrame型ではなくSeriesという型になります。

複数の列の情報を表示

次に複数の列ラベルの情報を取得・表示させてみましょう。

Pandasで特定の列ラベルだけを表示

たとえば、上画像のようにAgeとSurvivedという2つの列の情報だけを抽出したい場合は、

pandas.データフレーム[["列ラベル名1", "列ラベル名2"]]

このように指定します。実際に次のように入力して、

train_df[["Age", "Survived"]]

実行すると、結果は次のとおりです。

Pandasで特定の列ラベルだけを表示

上の1列の情報だけを取得した場合と同様に、このようにして複数列の情報を取得したオブジェクトについても型を調べてみましょう。

type(train_df[['Age', 'Survived']])e

そうすると今回は、

<class 'pandas.core.frame.DataFrame'>

このようにDataFrame型となりました。

方法その2: pandas.DataFrame.locを使う

以上のような方法だけでなく、もう1つの方法として「pandas.DataFrame.loc」を使う方法があります。

Pandas公式サイト:pandas.DataFrame.loc

使い方はいろいろあるのですが、今回は「行について」のスライス表記と組み合わせて使う方法を紹介します。この場合の基本的な使い方は次のとおりです。

pandas.データフレーム.loc[行の始点インデックス:行の終点インデックス, [列ラベルの指定]]
Pandasで特定の列ラベルだけを表示

たとえば、この画像のようにAgeとSurvivedの列だけをその各列の最初から最後まで表示させるならば、次のように指定します。

train_df.loc[:, ['Age', 'Survived']]

ここでは、

行についてのスライス始点のインデックス:指定なし
終点のインデックス:指定なし
列ラベルの指定AgeとSurvivedという2つ列を指定

このように指定しています。行についてのスライスは始点も終点も指定していないため、各列の最初から最後までのデータがすべて表示されることになります。

こうしてもこのように、上の場合と同じ結果となります、

Pandasで特定の列ラベルだけを表示

またたとえば、行インデックスも指定して、

train_df.loc[800:810, ['Age', 'Survived']]

このようにすれば、次の画像のようにAgeとSurvivedの行800〜810までを抽出できます。

pandasのloc

世界最大級のオンライン学習プラットホームUdemy(ユーデミー)では、Pythonやデータ分析の様々な講座が用意されています。大幅に割引されるセールもよく開催されています。

Udemyでお得なデータ分析・データサイエンス講座を探す
愛を分かち合いましょう