PythonのPandasのaxisについて

Python,イメージ

AI実装検定のご案内

PythonのPandasにおけるaxisは、DataFrameSeriesなどのデータ構造に対して操作の方向(軸)を指定するための非常に重要なパラメータです。

データを行と列の2次元構造として理解することで、axisの意味がより明確になります。

目次

Pandasにおける「axis」の基本的な考え方

Pandasのaxisは、以下のように数値で指定されます。

axis意味操作の方向
0行方向(縦)上から下へ処理(列単位で処理)
1列方向(横)左から右へ処理(行単位で処理)

具体例で理解する axis

以下のようなDataFrameを使って説明します。

import pandas as pd

# 基本となるデータフレーム
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

print("▼ DataFrameの中身")
print(df)

df.sum(axis=0) の場合 → 行方向に計算(列単位で合計)

# axis=0:行方向に処理 → 列ごとの合計
col_sum = df.sum(axis=0)

print("\n▼ axis=0(列ごとの合計)")
print(col_sum)
  • これは、各列の合計(A列: 1+2+3、B列: 4+5+6)を返しています。
  • axis=0 は「行方向に処理 → 列ごとに計算」という意味です。

df.sum(axis=1) の場合 → 列方向に計算(行単位で合計)

# axis=1:列方向に処理 → 行ごとの合計
row_sum = df.sum(axis=1)

print("\n▼ axis=1(行ごとの合計)")
print(row_sum)
  • これは、各行の合計です。
  • axis=1 は「列方向に処理 → 行ごとに計算」という意味になります。

主な関数での axis の使われ方一覧

関数axis=0 の意味axis=1 の意味
sum()各列の合計(行方向に集約)各行の合計(列方向に集約)
mean()各列の平均各行の平均
drop()行を削除列を削除
apply()各列に関数を適用各行に関数を適用
sort_values()指定した列で並び替え行ラベルで並び替え(やや特殊)

よくある混乱点

  • axis=0 は「行を対象にする」のではなく「行方向に処理する(つまり列に対して適用される)」ことを意味します。
  • どの方向に沿って処理を進めるか」という視点で考えると覚えやすくなります。

補足:NumPyとの共通性

Pandasは内部的にNumPyを使っているため、axisの概念はNumPyと一致しています。

例えば、NumPyでも np.sum(arr, axis=0) などと使いますが、方向の考え方は同じです。

実践: drop() での使い方

行を削除(index指定)

# index=0 の行を削除
df_drop_row = df.drop(index=0, axis=0)

print("\n▼ 行を削除(index=0, axis=0)")
print(df_drop_row)

→ インデックス0の行が削除されます。

列を削除(列名指定)

# 'A'列を削除
df_drop_col = df.drop(columns='A', axis=1)

print("\n▼ 列を削除('A'列, axis=1)")
print(df_drop_col)

→ ‘A’列が削除されます。

drop() では axis を省略して columns=index= を使うのが一般的です。

まとめ: axis の覚え方

  • axis=0 → 上から下へ → 列方向に処理(行を対象に集約/削除など)
  • axis=1 → 左から右へ → 行方向に処理(列を対象に集約/削除など)

視覚的には以下のイメージです。

axis=0(縦方向処理) → 列ごとに操作
axis=1(横方向処理) → 行ごとに操作

最後に一言

Pandasのaxisは、データ分析を正しく行うための「方向感覚」のようなものです。

これを正確に理解することで、集約・変換・削除・整形などの処理が格段に直感的になります。

もしaxisをどっちにするかで迷ったら、「列ごとに処理するなら axis=0、行ごとに処理するなら axis=1」という原則を思い出してください。

以上、PythonのPandasのaxisについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次