Python Pandas入門:行ラベル(loc)を使ってDataFrameから行を選択する方法
PandasのDataFrameで特定の行を抽出したい場合、loc() 関数を使用します。loc() は行ラベル(インデックスラベル)を指定してデータを取得するためのメソッドで、数値位置ではなくラベル名で行にアクセスできるのが特徴です。
この記事では、インデックスラベルとして「x」「y」「z」を持つDataFrameを作成し、loc() を使って目的の行を選択する方法を解説します。
DataFrameの作成
まず、サンプルとなるDataFrameを作成しましょう。index引数に行ラベル、columns引数に列名を指定します。
import pandas as pd
dataFrame = pd.DataFrame([[10, 15], [20, 25], [30, 35]],
index=['x', 'y', 'z'],
columns=['a', 'b'])このコードでは、3行×2列のデータに対して、行ラベルとして x、y、z を設定しています。
loc() を使った行の選択
行を選択するには、loc() の角括弧内に取得したい行のラベルを渡します。ここでは例として、インデックスラベル「z」を指定してみましょう。
dataFrame.loc['z']
完全なサンプルコード
以下は、DataFrameの作成から行の選択までの一連のコード例です。
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'])実行結果
上記のコードを実行すると、次のような出力が得られます。
DataFrame...
a b
x 10 15
y 20 25
z 30 35
行ラベルを渡して行を選択...
a 30
b 35
Name: z, dtype: int64ポイントまとめ
- loc[] は行ラベル(インデックス名)を指定してデータを取得するメソッドです。
- 位置(0始まりの番号)でアクセスしたい場合は iloc[] を使用します。
- 複数の行を同時に選択したい場合は、リスト形式で
dataFrame.loc[['x', 'z']]のように指定できます。 - スライス構文
dataFrame.loc['x':'y']を使えば、範囲指定での行選択も可能です。
loc() を使いこなすことで、ラベルベースの柔軟なデータ抽出が可能になり、データ分析の効率が大きく向上します。
-
【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ファイルを読み込みます。ここではデスクトップ上に保存
-
Python Pandas:read_csvのskipinitialspaceでCSV読み込み時の先頭スペースをスキップする方法
PandasでCSVの先頭スペースをスキップするには?PandasでDataFrameを読み込む際、データの先頭にある余分な空白(初期スペース)を取り除きたい場合は、read_csv()メソッドのskipinitialspaceパラメータを使用します。このパラメータをTrueに設定すると、区切り文字(カンマなど)の直後にある空白が自動的にスキップされます。CSVファイルの中には、カンマの後に不要なスペースが混ざっているケースが少なくありません。そのまま読み込むと、列名や値の先頭に空白が残り、条件検索やグループ化の際にデータが正しく一致しない原因となります。skipinitialspace=Tr