【Python】Pandas DataFrameからサブセット(列の一部)を選択する方法
Pandas DataFrameのサブセット選択とは?
Pandasでは、DataFrameから必要な列や行だけを取り出す操作を「サブセットの選択」と呼びます。大きなデータセットから目的のデータだけを抽出できれば、分析や前処理の効率が大幅に向上します。
この記事では、CSVファイルを読み込んだDataFrameから、1つの列、および複数の列を選択する基本的な方法を解説します。
使用するCSVファイルの内容
今回使用する「SalesData.csv」は、Microsoft Excelで開くと以下のような内容になっています。

CSVファイルからDataFrameを作成する
まず、pd.read_csv()メソッドを使って、CSVファイルのデータをPandas DataFrameに読み込みます。
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")
角括弧[ ]でサブセットを選択する
サブセットを選択するには、角括弧 [ ] を使います。括弧の中に列名を指定すれば、データセット全体からその列だけを取得できます。
dataFrame['Car']
複数の列を同時に取得したい場合は、列名をリスト形式(二重の角括弧)で指定します。
dataFrame[['Car', 'Units']]
サンプルコード全体
以下に、CSVファイルの読み込みからサブセットの表示までを行う完全なコードを示します。
import pandas as pd
# CSVファイルからPandas DataFrameへデータを読み込む
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")
print("\nReading the CSV file...\n", dataFrame)
# 1つの列のみを表示
res1 = dataFrame['Car']
print("\nDisplaying only one column Car : \n", res1)
# 2つの列を表示
res2 = dataFrame[['Car', 'Units']]
print("\nDisplaying two columns : \n", res2)
実行結果
上記のコードを実行すると、次のような出力が得られます。
Reading the CSV file...
Car Reg_Price Units
0 BMW 2500 100
1 Lexus 3500 80
2 Audi 2500 120
3 Jaguar 2000 70
4 Mustang 2500 110
Displaying only one column Car :
0 BMW
1 Lexus
2 Audi
3 Jaguar
4 Mustang
Name: Car, dtype: object
Displaying two columns :
Car Units
0 BMW 100
1 Lexus 80
2 Audi 120
3 Jaguar 70
4 Mustang 110
補足:loc・ilocで行単位のサブセットも抽出できる
列だけでなく、行単位でデータを抽出したい場合は、ラベルベースのlocや、位置ベースのilocが便利です。
# インデックス0〜2の行を抽出 dataFrame.loc[0:2] # 先頭3行を抽出 dataFrame.iloc[0:3]
まとめ
Pandas DataFrameのサブセット選択は、角括弧 [ ] に列名を指定するだけで簡単に行えます。1列なら df['列名']、複数列なら df[['列名1', '列名2']] のように記述します。さらに loc や iloc を組み合わせれば、行単位の柔軟なデータ抽出も可能になり、日々のデータ分析作業を効率化できます。
-
PythonでPandas DataFrameを棒グラフとして可視化する方法
データ分析において、PandasのDataFrameを視覚的に表現することは非常に重要です。この記事では、CSVファイルから読み込んだデータをmatplotlibを使って棒グラフ(バーチャート)として表示する方法を解説します。 前提条件:サンプルデータ 今回は以下のような内容のCSVファイル(SalesData.csv)を使用します。 Car Reg_Price 0 BMW 2000 1 Lexus 1500 2 Audi 1500 3 Jaguar 2000 4 Mustang
-
Python Pandas:read_csvのskipinitialspaceでCSV読み込み時の先頭スペースをスキップする方法
PandasでCSVの先頭スペースをスキップするには?PandasでDataFrameを読み込む際、データの先頭にある余分な空白(初期スペース)を取り除きたい場合は、read_csv()メソッドのskipinitialspaceパラメータを使用します。このパラメータをTrueに設定すると、区切り文字(カンマなど)の直後にある空白が自動的にスキップされます。CSVファイルの中には、カンマの後に不要なスペースが混ざっているケースが少なくありません。そのまま読み込むと、列名や値の先頭に空白が残り、条件検索やグループ化の際にデータが正しく一致しない原因となります。skipinitialspace=Tr