Pythonでデータ分析②: Pandasのインデクシング・選択・割り当て
1. インデクシング (Indexing)
Indexingとは、特定のデータを素早く参照や操作するための手法を指します。Pandasでは、3つの主要なメソッドで、行と列の両方に対してインデクシングを使用できます。
① []:列名または列名のリストを使用して列にアクセス
df['column_name'] # 単一列の選択
df[['col_name1', 'col_name2']] # 複数列の選択
② .loc[]: ラベルまたはラベルのリストに基づいてデータを選択
df.loc[row_label, column_label]
# すべての行の、3つの列を抽出する
df.loc[:, ['column1', 'column2', 'column3']]
③ .iloc[]: 位置(integer)や位置のリストに基づいてデータを選択
df.iloc[row_position, column_position]
df.iloc[:, 0] # 列だけ取得する
2. 選択 (Selection)
特定の基準または条件に従ってデータの部分集合を選び出す操作です。この操作はフィルタリングとも言われます。
# 単一条件によるフィルタリング
df[df['column'] > value]
# 複数条件によるフィルタリング
df[(df['column1'] > value1) & (df['column2'] < value2)]
SQLのように、条件を指定したり集計をして抽出することもできます。
3. 割り当て (Assignment)
新たにデータを生成・更新したり、データクリーニングの一環で値を変更したりすること。
# 新しい列の作成と割り当て
df['new_column'] = value
# 現存する列へ新しい値の割り当て
df['existing_column'] = new_value