日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pandas中drop用法_如何使用drop方法对数据进行删减处理

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas中drop用法_如何使用drop方法对数据进行删减处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我們進行數據分析時,某些情況下我們會需要對數據作出一系列的刪減處理。今天就為大家推薦一下在Python中常用于數據刪減的drop方法。

在Pandas 中,以 .drop 開頭的方法都與數據的刪減有關。

下面我們先簡單說一下drop的用法及一些主要參數:

drop函數:drop(labels, axis=0, level=None, inplace=False, errors='raise')

關于參數axis:

axis為0時表示刪除行,axis為1時表示刪除列,還是一樣~

關于參數errors:

errors='raise'會讓程序在labels接收到沒有的行名或者列名時拋出錯誤導致程序停止運行,errors='ignore'會忽略沒有的行名或者列名,只對存在的行名或者列名進行操作,沒有指定的話也是默認‘errors='raise'’。

其他主要參數:

介紹完函數體,下面我們還是一樣從例子出發:

(大家記得每次打代碼之間記得看下有沒有導入庫,我偶爾會忘了粘上庫的代碼)

import pandas as pd import numpy as np cities = pd.DataFrame(np.random.randn(5, 5),index=['a', 'b', 'c', 'd', 'e'],columns=['shenzhen', 'guangzhou', 'beijing', 'nanjing', 'haerbin']) cities

還是之前的那個城市的數據表。

(1)刪除掉第a行:

df1=cities.drop(labels='a') df1

df2=cities.drop(index='a') df2

可以看到,因為這里我們是刪除行,所以我們用labels、index都是可以的。不過還是推薦使用labels。而已還是要注意~drop默認對原表不生效,如果要對原表生效,需要添加參數:inplace=True

(2)刪除非連續的多行:

和上面一樣,我們可以通過labels來控制刪除行或列的個數,如果是刪多行/多列,需寫成labels=[1,3],不能寫成labels=[1:2],在這里用“:”號的話會報錯。

舉個例子:

df1=cities.drop(labels=['a','c','e']) df1

這里我們要插播一下比較細節的東西,大家以后可能會遇到的一個問題:

為了方便看,我們這次不設置索引名,下面重新創建一下數據表:

city = pd.DataFrame(np.random.randn(5, 5),columns=['shenzhen', 'guangzhou', 'beijing', 'nanjing', 'haerbin']) city

我們還是刪掉第1行(1實際上是第二行),而已這一次我們加上inplace=True:

city.drop(labels=1,axis=0,inplace=True)

然后我們看一下原來的數據表city:

可以看到,第1行確實被刪掉了,看上去好像沒什么問題。

如果這個時候,我們再輸入一次:

city.drop(labels=1,axis=0,inplace=True)

(報錯了,很應該啊,好像也沒什么,畢竟第1行本來就被我們刪掉了)

但是!!!注意了,我們在這里想說明的是:

如果我們沒標注索引,而已把數據一行一行刪掉的話,該行對應的索引也是被我們刪掉的!

比如說一個數據表里一共有5行,我們把第2、第3行給刪掉了,就會順道對應把索引2、索引3刪掉,這時候數據的索引就會變成[1、4、5],即使這個時候原來的第4行數據現在變成第2行了,現在也無法用索引第2行的方式來獲取現在的第2行(原來的第4行),因為索引已經亂了。

所以說,大家在用drop的時候還是要注意這一點的。同時,我們該如何解決這個問題呢?

答案是要將索引重置,這樣后面再次使用才不會因為索引不存在而報錯。

重置索引的方法是:reset_index

reset_index,默認(drop = False),當我們指定(drop = True)時,則不會保留原來的index,會直接使用重置后的索引。

我們來實驗一下:

----------------------------------------------------------------------------------------------

這是原來刪掉第1行后的數據表:

很明顯索引沒重置,所以在我們再次刪除時,出現了下面這種情況:

下面我們使用reset_index進行索引重置:

可以看到,此時數據表增加了一列新的索引,同時原來的索引被被保留了下來。

如果我們想直接使用重置后的索引,不保留原來的index,就可以加上(drop = True),如下所示:

city.reset_index(drop=True)

也就是說這個時候,原來被我們刪除的那行數據已經沒了,但是索引沒有變亂。

這個時候我們再試試刪除第1行,果然沒有問題了。

-----------------------------------------------------------------------------------------------

補充完上面的解釋,我們接下去介紹drop的其他用法。

(3)刪除連續的多行:

當我們想刪除連續多行時,如果還是一個一個標簽輸入的話,顯得不太智能,所以我們可以用更簡便的方法:

再建一個新的數據表:

people= pd.DataFrame(np.random.randn(6, 6),columns=['jack', 'rose', 'mike', 'chenqi', 'amy','tom']) people

當我們想刪去第2-4行時,可以用如下表示:

df2=people.drop(labels=range(2,5),axis=0) df2

注意了,不能用這種方法嘗試刪除列,會報錯。

(4)刪除列:

在最新的表中刪除‘jack’這一列:

df2=people.drop(labels='jack',axis=1) df2

同時刪除‘rose’、‘mike’這兩列:

df2=people.drop(labels=['rose','mike'],axis=1) df2


以上便是<如何使用drop方法對數據進行刪減處理>的內容,感謝大家的細心閱讀,同時歡迎感興趣的小伙伴一起討論、學習,想要了解更多內容的可以看我的其他文章,同時可以持續關注我的動態~

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的pandas中drop用法_如何使用drop方法对数据进行删减处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。