Python, Pandas|行を削除df.drop(n), 列を削除df.drop(df.columns[n], axis=1)

Python, Pandasで行番号を指定して削除したいときは、df = df.drop(n)で行います。csvの先頭行を削除したい…、NaN判定して削除したい…ときに便利です。

列順位を指定して削除したいときは、df = df.drop(df.columns[n], axis=1)で行います。axis=1で対象が「列」であることをTrueとして認識させています。

Pandasの行 削除 df.drop(n)

データフレームから特定の行を削除するときは、行番号を指定します。例: df.drop(0)

複数の行番号を指定して削除するときは、リストで指定できます。例: df.drop([0, 1, 2])


#   A B C
# 0
# 1
# 2

df = df.drop(0)
print(df)
#   A B C
# 1
# 2

df = df.drop(0)
print(df)
# KeyError: '[0] not found in axis'
## 0行番目がすでに無いのでエラーが出ます。

繰り返し 行 削除するときは? df.drop(df.index[n])

繰り返して、再帰的に削除できます。index[n]で指定するのは [行番号]ではなく、そのときの[行順位]だからです。


#   A B C
# 0
# 1
# 2

df = df.drop(df.index[0])
print(df)
#   A B C
# 1
# 2

df = df.drop(df.index[0])
print(df)
#   A B C
# 2

Pandasの列 削除 df.drop(df.columns[n], axis=1)

繰り返して、再帰的に処理できます。columns[n]で指定するのは[列番号]ではなく、そのときの[列順位]だからです。


#   A B C
# 0
# 1
# 2

df = df.drop(df.columns[0], axis=1)
print(df)
#   B C
# 0
# 1
# 2

df = df.drop(df.columns[0], axis=1)
print(df)
#   C
# 0
# 1
# 2