pandas_drop/Mayumi

行・列の削除

pandas.DataFrameの行・列を削除するには、drop()メソッドを使う。

行の削除

行名(行ラベル)で指定

  • df.drop("sample4", axis = 0)   ※デフォルトは axis = 0
  • df.drop(index="sample4")  
  • df.drop(index=["sample4", "sample6", "sample7"])

# データの行の削除
df.drop(index=[0,2])
行が削除されたことによってIndexが連続ではなくなる。
新しくIndexを振り直すときは、DataFrame.reset_indexを用いる。
df.drop(index=[0,2]).reset_index()

index ID City Birth_year Name
0 1 101 Osaka 1989 Akiko
1 3 103 Hokkaido 1997 Satoru
2 4 104 Tokyo 1982 Steve
この場合、元々のIndexが新しくcolumnとなる。
元々のIndexを削除する場合には、drop=Trueとすればよい。

行番号で指定

indexで行番号を指定すると、対応する行名を取得できる。
  • df.index[[1, 3, 5] ]   ※]]
連続する行を削除するときは、rangeで指定できる。
  • df1 = df1.drop(range(21,36))
... 21~35行目を削除
  • df = df.iloc[range(111), :]
... 111行目以降を削除

上で行名を確認して、drp()で番号を指定することもできる。
  • df.drop(df.index[[1, 3, 5] ])   ※]]

デフォルトでは元のDataFrameは変更されない。
inplace=True を入れると、元のDataFrameが変更される。
-- Mayumi 2022-04-09


列の削除

列名(列ラベル)で指定

  • df.drop("itemB", axis = 1)
  • df.drop(columns = "itemB")
  • df.drop(["itemB", "itemD"], axis = 1)
  • del df["itemB"]

列番号で指定

  • df.columns[[1, 2] ]  ※]]
で列番号と列名の対応を確認して、
  • df.drop(df.columns[[1, 2] ], axis = 1)
-- Mayumi 2022-04-09


欠損値を含む行の削除

  • df.dropna()

predict_data.head()
   Ym     customer_id     count_pred     count_0     count_1     count_2     count_3     count_4     count_5
0 201810 AS002855 3 7.0 3.0 5.0 5.0 5.0 4.0
1 201810 AS008805 2 2.0 5.0 7.0 8.0 NaN NaN
2 201810 AS009373 5 6.0 6.0 7.0 4.0 4.0 3.0
3 201810 AS015233 7 9.0 11.0 5.0 7.0 7.0 NaN
4 201810 AS015315 4 7.0 3.0 6.0 3.0 3.0 6.0
predict_data = predict_data.dropna()
predict_data = predict_data.reset_index(drop=True)
predict_data
   Ym     customer_id     count_pred     count_0     count_1     count_2     count_3     count_4     count_5
0 201810 AS002855 3 7.0 3.0 5.0 5.0 5.0 4.0
1 201810 AS009373 5 6.0 6.0 7.0 4.0 4.0 3.0
2 201810 AS015315 4 7.0 3.0 6.0 3.0 3.0 6.0
3 201810 AS015739 5 6.0 5.0 8.0 6.0 5.0 7.0
4 201810 AS019860 7 5.0 7.0 4.0 6.0 8.0 6.0
... ... ... ... ... ... ... ... ... ...
15108 201903 TS995299 3 3.0 5.0 4.0 5.0 4.0 5.0
15109 201903 TS998593 8 7.0 8.0 7.0 9.0 9.0 9.0
15110 201903 TS999079 3 2.0 6.0 9.0 6.0 6.0 4.0
15111 201903 TS999231 6 6.0 3.0 8.0 5.0 5.0 4.0
15112 201903 TS999855 4 4.0 7.0 5.0 4.0 4.0 5.0

15113 rows × 9 columns

df = df.dropna(subset=['Var1']) #'Var1'NaNの列を削除
-- Mayumi 2022-04-14




  • 最終更新:2022-04-14 20:58:09

このWIKIを編集するにはパスワード入力が必要です

認証パスワード