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

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

1. 前言

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

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

2. 刪除指定行或列

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

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

2.1 刪除指定的行

# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址
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é)果 ---
  編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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

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

# --- 輸出結(jié)果 ---
# --- data_res的數(shù)據(jù)集 ---
    編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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ù)集 ----
     編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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è)置了標(biāo)簽為 1 和 3,默認(rèn)是 axis=0 則對(duì)應(yīng)的是刪除行索引為 1 和 3 的行數(shù)據(jù),如果 axis=0 是刪除行數(shù)據(jù)而設(shè)置的 labels 對(duì)應(yīng)的不是行索引標(biāo)簽,則刪除時(shí)會(huì)報(bào)錯(cuò),這里可以看到輸出結(jié)果正是刪除了行索引為1和3的兩行數(shù)據(jù)。

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

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

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

   編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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的索引行。這是因?yàn)楫?dāng)我們?cè)O(shè)置了 inplace=True 時(shí),drop() 操作后就不會(huì)返回一個(gè)新的數(shù)據(jù)集,而是在原數(shù)據(jù)集的基礎(chǔ)上進(jìn)行了操作,在實(shí)際應(yīng)用中,如果不是特別的需要,建議不要指定該參數(shù)為 True,不然會(huì)改變?cè)袛?shù)據(jù)對(duì)其他的分析產(chǎn)生一定的影響。

2.2 刪除指定的列

# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址
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é)果 ---
  編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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=["推出時(shí)間","主要?jiǎng)?chuàng)始人"],axis=1)
print(data_res)

# --- 輸出結(jié)果 ---
     編程語言    價(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è)置刪除指定的列,列索引名要真實(shí)存在,不然會(huì)報(bào)錯(cuò),同時(shí) axis=1 是指定刪除列操作,不能省略。通過輸出結(jié)果可以看到刪除了推出時(shí)間和主要?jiǎng)?chuàng)始人這兩列的數(shù)據(jù)。

2.3 刪除指定的行和列

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

# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址
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é)果 ---
     編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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

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

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

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

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

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

# 導(dǎo)入pandas包
import pandas as pd
# 指定導(dǎo)入的文件地址
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é)果 ---
  編程語言   推出時(shí)間    價(jià)格                       主要?jiǎng)?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

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

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

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

3.小結(jié)

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

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

圖片描述

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