Pandas の行をドロップ

Suraj Joshi 2023年1月30日
  1. pandas.DataFrame.drop() メソッドでインデックスを指定して行をドロップする
  2. Pandas DataFrame の特定の列の値に応じて行を削除する
Pandas の行をドロップ

このチュートリアルでは、pandas.DataFrame.drop() メソッドを使って Pandas の行をドロップする方法を説明します。

import pandas as pd

kgp_df = pd.DataFrame(
    {
        "Name": ["Himansh", "Prateek", "Abhishek", "Vidit", "Anupam"],
        "Age": [30, 33, 35, 30, 30],
        "Weight(KG)": [75, 75, 80, 70, 73],
    }
)
print("The KGP DataFrame is:")
print(kgp_df)

出力:

The KGP DataFrame is:
       Name  Age  Weight(KG)
0   Himansh   30          75
1   Prateek   33          75
2  Abhishek   35          80
3     Vidit   30          70
4    Anupam   30          73

kgp_df DataFrame を使用して、Pandas DataFrame から行を削除する方法を説明します。

pandas.DataFrame.drop() メソッドでインデックスを指定して行をドロップする

import pandas as pd

kgp_df = pd.DataFrame(
    {
        "Name": ["Himansh", "Prateek", "Abhishek", "Vidit", "Anupam"],
        "Age": [30, 33, 35, 30, 30],
        "Weight(KG)": [75, 75, 80, 70, 73],
    }
)

rows_dropped_df = kgp_df.drop(kgp_df.index[[0, 2]])

print("The KGP DataFrame is:")
print(kgp_df, "\n")

print("The KGP DataFrame after dropping 1st and 3rd DataFrame is:")
print(rows_dropped_df)

出力:

The KGP DataFrame is:
       Name  Age  Weight(KG)
0   Himansh   30          75
1   Prateek   33          75
2  Abhishek   35          80
3     Vidit   30          70
4    Anupam   30          73

The KGP DataFrame after dropping 1st and 3rd DataFrame is:
      Name  Age  Weight(KG)
1  Prateek   33          75
3    Vidit   30          70
4   Anupam   30          73

インデックス 0 と 2 の行を kgp_df DataFrame から削除します。インデックスが 0 から始まるので、インデックス 0 と 2 の行は DataFrame の 1 行目と 3 行目に対応します。

デフォルトのインデックスを使用する代わりに、DataFrame のインデックスを使用して行を削除することもできます。

import pandas as pd

kgp_idx = ["A", "B", "C", "D", "E"]
kgp_df = pd.DataFrame(
    {
        "Name": ["Himansh", "Prateek", "Abhishek", "Vidit", "Anupam"],
        "Age": [30, 33, 35, 30, 30],
        "Weight(KG)": [75, 75, 80, 70, 73],
    },
    index=kgp_idx,
)

rows_dropped_df = kgp_df.drop(["A", "C"])

print("The KGP DataFrame is:")
print(kgp_df, "\n")

print("The KGP DataFrame after dropping 1st and 3rd DataFrame is:")
print(rows_dropped_df)

出力:

The KGP DataFrame is:
       Name  Age  Weight(KG)
A   Himansh   30          75
B   Prateek   33          75
C  Abhishek   35          80
D     Vidit   30          70
E    Anupam   30          73

The KGP DataFrame after dropping 1st and 3rd DataFrame is:
      Name  Age  Weight(KG)
B  Prateek   33          75
D    Vidit   30          70
E   Anupam   30          73

インデックス AC の行、または DataFrame の 1 行目と 3 行目を削除します。

削除する行のインデックスのリストを drop() メソッドに渡して、それぞれの行を削除します。

Pandas DataFrame の特定の列の値に応じて行を削除する

import pandas as pd

kgp_idx = ["A", "B", "C", "D", "E"]
kgp_df = pd.DataFrame(
    {
        "Name": ["Himansh", "Prateek", "Abhishek", "Vidit", "Anupam"],
        "Age": [31, 33, 35, 36, 34],
        "Weight(KG)": [75, 75, 80, 70, 73],
    },
    index=kgp_idx,
)

young_df_idx = kgp_df[kgp_df["Age"] <= 33].index
young_folks = kgp_df.drop(young_df_idx)

print("The KGP DataFrame is:")
print(kgp_df, "\n")

print("The DataFrame of folks with age less than or equal to 33 are:")
print(young_folks)

出力:

The KGP DataFrame is:
       Name  Age  Weight(KG)
A   Himansh   31          75
B   Prateek   33          75
C  Abhishek   35          80
D     Vidit   36          70
E    Anupam   34          73

The DataFrame of folks with age less than or equal to 33 are:
       Name  Age  Weight(KG)
C  Abhishek   35          80
D     Vidit   36          70
E    Anupam   34          73

年齢が 33 歳以下のすべての行を削除します。

まず、年齢が 33 歳以下のすべての行のインデックスを見つけ、drop() メソッドを使って行を削除します。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Pandas DataFrame Row