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

【Python Pandas】ilocを使って整数位置でDataFrameの行を選択する方法

Pandasでは、行を整数位置(インデックス番号)で選択したい場合にiloc()関数を使用します。loc()がラベル名で行を指定するのに対し、iloc()は0から始まる整数位置で行を指定できるのが特徴です。

まず、サンプル用のDataFrameを作成しましょう。

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

このDataFrameは、インデックスに「x」「y」「z」、カラムに「a」「b」を持つ3行2列のデータです。

iloc()で行を選択する基本構文

iloc()に行番号を渡すことで、該当する位置の行を選択できます。例えば、2行目(インデックス番号1)を選択するには次のように記述します。

dataFrame.iloc[1]

インデックスラベルが「y」でも、整数位置としては「1」になるため、iloc[1]は「y」の行を返します。

サンプルコード

以下に、loc()とiloc()の両方を使った完全なコード例を示します。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame([[10, 15], [20, 25], [30, 35]], index=['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])

実行結果

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

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

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

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

ポイントまとめ

  • loc():インデックスラベル('x'、'y'など)を指定して行を選択する
  • iloc():0から始まる整数位置(0、1、2…)を指定して行を選択する
  • iloc[1]のように単一の整数を渡すとSeriesとして返され、iloc[[0, 2]]のようにリストを渡すと複数行をDataFrameとして取得できる
  • スライスも可能で、iloc[0:2]とすれば先頭から2行目まで(終端は含まない)を選択できる

このように、iloc()を使えばラベル名に依存せず、行の「位置」を基準に柔軟にデータを抽出できます。大量データの処理や、特定範囲の行を機械的に取り出したい場合に非常に便利な機能です。

  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