Pandas中Dataframe刪除行/列的方法

初始化測試數據

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').

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章