第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Pandas 刪除數(shù)據(jù)

1. 前言

上一小節(jié)我們講述了如何新增數(shù)據(jù)的方法,主要包括新增行和列的具體操作,新增操作是為了我們對數(shù)據(jù)進行擴充,滿足我們對數(shù)據(jù)量大和內(nèi)容豐富的追求,而有時候恰恰相反,數(shù)據(jù)里面存在大量的臟數(shù)據(jù)和無效數(shù)據(jù),我們需要對這部分數(shù)據(jù)進行刪除,避免這些數(shù)據(jù)在分析結(jié)果中帶來的誤差或精度不夠的影響,那在 Pandas 中該如何根據(jù)需要去刪除指定的數(shù)據(jù)集呢?

Pandas 刪除數(shù)據(jù)可以分為兩種操作,一是刪除指定的行或列,二是根據(jù)條件刪除某些特定數(shù)據(jù)的行或列。這兩者雖然在效果上都能有效的刪除我們不需要的數(shù)據(jù),但其操作的本質(zhì)是不一樣的,那我們接下來就具體看一下這兩種操作的細節(jié)內(nèi)容吧。

2. 刪除指定行或列

這里刪除指定的行或列,我們主要用到了 Pandas 提供的一個函數(shù) drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=‘raise’) ,該函數(shù)提供了七個參數(shù),為我們刪除指定的行或者列提供了便捷的操作,下面我們列舉了該函數(shù)常用參數(shù)的說明:

參數(shù)名 說明
labels 標簽(行標簽或者列標簽)
axis 表示刪除行(axis=0 默認)或者刪除列(axis=1)
index 刪除的行索引名
columns 刪除的列索引名
inplace 指定刪除是否要在原數(shù)據(jù)上進行操作,默認是 False

2.1 刪除指定的行

# 導入pandas包
import pandas as pd
# 指定導入的文件地址
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
# 解析數(shù)據(jù)
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
  編程語言   推出時間    價格                       主要創(chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

# 刪除指定行 等價于drop(labels=[0,1],axis=0)
data_res=data.drop(labels=[1,3])
print(data_res)
print(data)

# --- 輸出結(jié)果 ---
# --- data_res的數(shù)據(jù)集 ---
    編程語言   推出時間    價格                       主要創(chuàng)始人
0  java  199545.6               James Gosling
2     C  197233.9  Dennis MacAlistair Ritchie
4   php  201269.9              Rasmus Lerdorf
5   C++  198375.0           Bjarne Stroustrup
# --- data的數(shù)據(jù)集 ----
     編程語言   推出時間    價格                       主要創(chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

輸出解析:我們通過 drop() 方法的 labels 設(shè)置了標簽為 1 和 3,默認是 axis=0 則對應(yīng)的是刪除行索引為 1 和 3 的行數(shù)據(jù),如果 axis=0 是刪除行數(shù)據(jù)而設(shè)置的 labels 對應(yīng)的不是行索引標簽,則刪除時會報錯,這里可以看到輸出結(jié)果正是刪除了行索引為1和3的兩行數(shù)據(jù)。

這里值得注意的是:在執(zhí)行刪除操作后我們再次打印了原 data 數(shù)據(jù)集,通過輸出可以看到,data 的數(shù)據(jù)并沒有被影響到,還是完整的數(shù)據(jù)集。這里如果我們的 inplace 參數(shù)設(shè)置了 True,則對應(yīng)的刪除操作后,原數(shù)據(jù)就會被修改,通過下面的代碼可以看到操作效果:

# 刪除指定行 等價于drop(labels=[0,1],axis=0)
data_res=data.drop(labels=[1,3],axis=0,inplace=True )
print(data_res)
print(data)

# --- 輸出結(jié)果 ---
None

   編程語言   推出時間    價格                       主要創(chuàng)始人
0  java  199545.6               James Gosling
2     C  197233.9  Dennis MacAlistair Ritchie
4   php  201269.9              Rasmus Lerdorf
5   C++  198375.0           Bjarne Stroustrup

輸出解析:這里可以看到 data_res 的輸出結(jié)果為 None ,而 data 原數(shù)據(jù)集則被刪除了1和3的索引行。這是因為當我們設(shè)置了 inplace=True 時,drop() 操作后就不會返回一個新的數(shù)據(jù)集,而是在原數(shù)據(jù)集的基礎(chǔ)上進行了操作,在實際應(yīng)用中,如果不是特別的需要,建議不要指定該參數(shù)為 True,不然會改變原有數(shù)據(jù)對其他的分析產(chǎn)生一定的影響。

2.2 刪除指定的列

# 導入pandas包
import pandas as pd
# 指定導入的文件地址
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
# 解析數(shù)據(jù)
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
  編程語言   推出時間    價格                       主要創(chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

# 刪除指定列
data_res=data.drop(labels=["推出時間","主要創(chuàng)始人"],axis=1)
print(data_res)

# --- 輸出結(jié)果 ---
     編程語言    價格
0    java  45.6
1  python  67.0
2       C  33.9
3      js  59.5
4     php  69.9
5     C++  75.0

輸出解析:通過 labels 設(shè)置刪除指定的列,列索引名要真實存在,不然會報錯,同時 axis=1 是指定刪除列操作,不能省略。通過輸出結(jié)果可以看到刪除了推出時間和主要創(chuàng)始人這兩列的數(shù)據(jù)。

2.3 刪除指定的行和列

有時候我們需要將某行和某列同時刪除,這時候我們可以同時傳入 index 和 columns 的參數(shù)值即可,如果只傳一個,則是只刪除對應(yīng)的行或者列:

# 導入pandas包
import pandas as pd
# 指定導入的文件地址
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
# 解析數(shù)據(jù)
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
     編程語言   推出時間    價格                       主要創(chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

# 同時刪除指定行和列
data_res=data.drop(index=4, columns="主要創(chuàng)始人")
print(data_res)

# --- 輸出結(jié)果 ---
  編程語言   推出時間    價格
0    java  199545.6
1  python  199167.0
2       C  197233.9
3      js  199559.5
5     C++  198375.0

輸出解析:這里我們同時指定了行索引和列索引的值,通過輸出結(jié)果可以看出,這里刪除了行索引為4的數(shù)據(jù)并且刪除了主要創(chuàng)始人這一列的數(shù)據(jù)。

3. 刪除特定數(shù)據(jù)的行

這里我們講的刪除特定數(shù)據(jù)的行或列,其實并不是真正意義上的刪除內(nèi)容,而是通過數(shù)據(jù)條件的篩選過濾,得到一個新的數(shù)據(jù)集,從效果上看,也是去除了部分數(shù)據(jù)內(nèi)容,達到了我們刪除數(shù)據(jù)的實際需要。

# 導入pandas包
import pandas as pd
# 指定導入的文件地址
data_path="C:/Users/13965/Documents/myFuture/IMOOC/pandasCourse-progress/data_source/第7,8,9,10小節(jié)/execl數(shù)據(jù)demo.xlsx"
# 解析數(shù)據(jù)
data = pd.read_excel(data_path)
print(data)

# --- 輸出結(jié)果 ---
  編程語言   推出時間    價格                       主要創(chuàng)始人
0    java  199545.6               James Gosling
1  python  199167.0            Guido van Rossum
2       C  197233.9  Dennis MacAlistair Ritchie
3      js  199559.5                Brendan Eich
4     php  201269.9              Rasmus Lerdorf
5     C++  198375.0           Bjarne Stroustrup

# 我們對價格列小于50的數(shù)據(jù)進行篩選
data_res=data[data["價格"]<50]
print(data_res)

# --- 輸出結(jié)果 ---
 編程語言   推出時間    價格            主要創(chuàng)始人
0  java  199545.6               James Gosling
2     C  197233.9  Dennis MacAlistair Ritchie

輸出解析:這里我們通過對價格列費用小于50的數(shù)據(jù)進行篩選,進而刪除掉了價格大于等于50的數(shù)據(jù)行,返回給了新的數(shù)據(jù)集 data_res ,在效果上達到了刪除數(shù)據(jù)行的作用。

3.小結(jié)

本節(jié)課我們主要學習了刪除數(shù)據(jù)行或者列的操作方法,一種是通過 drop() 方法刪除指定的行或列,二是通過數(shù)據(jù)的篩選過濾進而達到刪除數(shù)據(jù)行的效果,兩種刪除方法要根據(jù)具體的業(yè)務(wù)需要進行選用。本節(jié)課程的重點如下:

  • drop() 操作刪除數(shù)據(jù)行和列的操作方法;
  • drop() 操作中幾個重要參數(shù)的使用;
  • 根據(jù)特定條件刪除數(shù)據(jù)行的操作。

圖片描述

Tips:想要學習更多Pandas相關(guān)知識,可以點擊
Pandas 新增數(shù)據(jù)
Pandas 修改數(shù)據(jù)
Pandas 查詢數(shù)據(jù)