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で指定できる。
... 21~35行目を削除
- df1 = df1.drop(range(21,36))
... 111行目以降を削除
- df = df.iloc[range(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