Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas入門:DataFrameから複数の行を抽出する方法をわかりやすく解説

PandasのDataFrameから複数の行を選択・抽出するには、スライス演算子「:」を使う方法が便利です。この記事では、基本的な行の選択方法から、locilocを使った応用的な抽出方法まで、サンプルコードと実行結果とともに詳しく解説します。

1. Pandasのインポート

まず、必要なPandasライブラリを別名(エイリアス)付きでインポートします。慣例として「pd」という別名を使うのが一般的です。

import pandas as pd

2. DataFrameの作成

次に、サンプル用のDataFrameを作成します。ここでは4行2列のデータを用意し、行ラベルに「w」「x」「y」「z」、列名に「a」「b」を指定しています。

dataFrame = pd.DataFrame(
    [[10, 15], [20, 25], [30, 35], [40, 45]],
    index=['w', 'x', 'y', 'z'],
    columns=['a', 'b']
)

3. スライス演算子で複数の行を選択する

複数の行を選択するには、「:」演算子を使って範囲を指定します。以下の例では、0番目から2番目の手前まで(つまり先頭の2行)を抽出しています。

dataFrame[0:2]

なお、スライスは終了位置を含まない点に注意してください。[0:2]の場合、0番目と1番目の行が取得されます。

サンプルコード全体

以下に、ラベル指定(loc)、整数位置指定(iloc)、そして複数行の選択を組み合わせた完全なコードを示します。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    [[10, 15], [20, 25], [30, 35], [40, 45]],
    index=['w', 'x', 'y', 'z'],
    columns=['a', 'b']
)

# DataFrameを表示
print("DataFrame...\n", dataFrame)

# loc:行ラベルを指定して行を選択
print("\nラベルを指定して行を選択...")
print(dataFrame.loc['z'])

# iloc:整数位置を指定して行を選択
print("\n整数位置を指定して行を選択...")
print(dataFrame.iloc[1])

# 複数の行を選択
print("\n複数の行を選択...")
print(dataFrame[0:2])

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame...
     a   b
w  10  15
x  20  25
y  30  35
z  40  45

ラベルを指定して行を選択...
a    40
b    45
Name: z, dtype: int64

整数位置を指定して行を選択...
a    20
b    25
Name: x, dtype: int64

複数の行を選択...
     a   b
w  10  15
x  20  25

各行の選択方法のまとめ

  • loc:行ラベル(index名)を指定して行を取得します。単一のラベルでも、リストやスライスでも指定可能です。
  • iloc:行番号(0から始まる整数位置)を指定して行を取得します。
  • スライス演算子「:」dataFrame[開始:終了] の形式で範囲を指定し、複数の行を一度に抽出できます。終了位置は含まれません。

これらの方法を使い分けることで、DataFrameから目的の行を柔軟かつ効率的に取り出すことができます。データ分析の前処理などで頻繁に使うテクニックなので、ぜひマスターしておきましょう。

  1. 【Python】Pandas DataFrameからnull(欠損値)行を削除する方法|dropna()の使い方

    PandasのDataFrameからnull(NaN)行を削除するには、dropna()メソッドを使用します。この記事では、NaNを含むCSVファイルを読み込み、dropna()で欠損値を含む行を取り除くまでの手順を、サンプルコードと実行結果とともにわかりやすく解説します。前提:NaNを含むCSVファイル今回の例では、一部にNaN(null値)が含まれる以下のようなCSVファイル(CarRecords.csv)を使用します。手順1:read_csv()でCSVファイルを読み込むまずpandasをインポートし、read_csv()を使ってCSVファイルを読み込みます。ここではデスクトップ上に保存

  2. Python Pandas:read_csvのskipinitialspaceでCSV読み込み時の先頭スペースをスキップする方法

    PandasでCSVの先頭スペースをスキップするには?PandasでDataFrameを読み込む際、データの先頭にある余分な空白(初期スペース)を取り除きたい場合は、read_csv()メソッドのskipinitialspaceパラメータを使用します。このパラメータをTrueに設定すると、区切り文字(カンマなど)の直後にある空白が自動的にスキップされます。CSVファイルの中には、カンマの後に不要なスペースが混ざっているケースが少なくありません。そのまま読み込むと、列名や値の先頭に空白が残り、条件検索やグループ化の際にデータが正しく一致しない原因となります。skipinitialspace=Tr