この記事ではPythonのライブラリであるpandasを用いたデータのインデックシングとスライシングについて解説します。具体的なコード例とその解説、応用例を含めています。
目次
はじめに
データ分析を行う上で、特定のデータを効率よく抽出するスキルは必須です。Pythonのpandasライブラリは、そのようなデータ操作を簡単かつ効率的に行うための多くの機能を提供しています。
基本的なインデックシングとスライシング
pandasにおける基本的なインデックシングとスライシングにはいくつかの方法があります。
locとilocの違い
pandasでは主に`loc`と`iloc`を用いてインデックシングとスライシングが行えます。
import pandas as pd
# サンプルデータフレーム作成
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# locを使った行の取得
df_loc = df.loc[0] # 行ラベルが0の行を取得
# ilocを使った行の取得
df_iloc = df.iloc[0] # インデックスが0の行を取得
`loc`はラベルベースで、`iloc`は整数ベースでデータを取り出します。
行の取得
行の取得には`loc`や`iloc`が利用されます。
# locを用いた例
row_loc = df.loc[1]
# ilocを用いた例
row_iloc = df.iloc[1]
列の取得
列の取得には、通常のインデックス指定や`loc`、`iloc`を用います。
# 通常のインデックス指定
column_A = df['A']
# locを用いた例
column_loc = df.loc[:, 'A']
# ilocを用いた例
column_iloc = df.iloc[:, 0]
応用例
条件に基づくデータの抽出
特定の条件を満たすデータを抽出する方法です。
# A列が2より大きいデータを取得
filtered_data = df[df['A'] > 2]
複数の条件にマッチするデータの抽出
AND(&)やOR(|)を使って複数の条件にマッチするデータを抽出できます。
# A列が2より大きく、かつC列が8より小さいデータを取得
filtered_data_multi = df[(df['A'] > 2) & (df['C'] < 8)]
まとめ
pandasでのデータのインデックシングとスライシングは、データ分析作業を効率的に行うためには欠かせないスキルです。本記事を参考に、データ操作のスキルを高めてください。
コメント