初始化測試數據
df = pd.DataFrame([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], columns=["col1", "col2", "col3", "col4"], index=['row1', 'row2', 'row3']) print(df)
刪除指定行
new_df = df.drop(index='row2') new_df = df.drop('row2', axis='index') new_df = df.drop('row2', axis=0)
刪除指定多行
new_df = df.drop(index=['row1', 'row2']) new_df = df.drop(['row1', 'row2'], axis='index') new_df = df.drop(['row1', 'row2'], axis=0)
刪除指定列
new_df = df.drop(columns='col1') new_df = df.drop('col1', axis='columns') new_df = df.drop('col1', axis=1)
刪除指定的多列
new_df = df.drop(columns=['col2', 'col3']) new_df = df.drop(['col2', 'col3'], axis='columns') new_df = df.drop(['col2', 'col3'], axis=1)
測試刪除row2行:
print(df.drop(index='row2')) print(df.drop('row2', axis='index')) print(df.drop('row2', axis=0))
結果:
Dataframe的drop方法默認不會修改原始dataframe,而是返回一個新的dataframe,所以需要新的變量去接收結果
測試代碼:
new_df = df.drop(index='row2') print(new_df) print(df)
結果:
若要直接修改原始dataframe,設置參數inplace=True(默認False),不會返回結果
new_df = df.drop(index='row2', inplace=True) print(new_df) print(df)
結果:
Tip:drop的axis與 sum,mean等計算函數中的axis的含義不同,drop中axis的含義爲:
axis : {0 or 'index', 1 or 'columns'}, default 0 Whether to drop labels from the index (0 or 'index') or columns (1 or 'columns').