欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas數(shù)據(jù)清洗函數(shù)總結(jié)

 更新時(shí)間:2023年01月13日 15:35:55   作者:非常顏色  
本文主要介紹了Pandas數(shù)據(jù)清洗函數(shù)總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、drop():刪除指定行列

drop()函數(shù)用于刪除指定行,指定列,同時(shí)可以刪除多行多列

語(yǔ)法格式

DataFrame.drop(
        self,
        labels=None,
        axis: Axis = 0,
        index=None,
        columns=None,
        level: Level | None = None,
        inplace: bool = False,
        errors: str = "raise",
    )

參數(shù)說(shuō)明

  • labels:要?jiǎng)h除的行列的名字,接收列表參數(shù),列表內(nèi)有多個(gè)參數(shù)時(shí)表示刪除多行或者多列
  • axis:要?jiǎng)h除的軸,與labels參數(shù)配合使用。默認(rèn)為0,指刪除行;axis=1,刪除列
  • index:直接指定要?jiǎng)h除的行
  • columns:直接指定要?jiǎng)h除的列
  • inplace:是否直接在原數(shù)據(jù)上進(jìn)行刪除操作,默認(rèn)為False(刪除操作不改變?cè)瓟?shù)據(jù)),而是返回一個(gè)執(zhí)行刪除操作后的新dataframe;inplace=True,直接在原數(shù)據(jù)上修改。

1. 刪除指定行

當(dāng) axis=0 時(shí),刪除指定行

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]},index=list('abcdefgh'))
print(df_obj)
# 刪除第一行
df_obj.drop(labels='a', axis=0, inplace=True)
print(df_obj)

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 刪除指定列

當(dāng) axis=1 時(shí),刪除指定列

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]}, index=list('abcdefgh'))
print(df_obj)
# 刪除data2 
df_obj.drop(labels='data2', axis=1, inplace=True)
print(df_obj)

運(yùn)行結(jié)果:

在這里插入圖片描述

二、del():刪除指定列

del()函數(shù)與drop()函數(shù)相比就沒(méi)有那么靈活了,此操作會(huì)對(duì)原數(shù)據(jù)df進(jìn)行刪除,且一次只能刪除一列。

語(yǔ)法格式

del df[‘列名']

案例:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]}, index=list('abcdefgh'))
print(df_obj)
# 刪除data1
del df_obj['data1']
print(df_obj)

運(yùn)行結(jié)果:

在這里插入圖片描述

三、isnull():判斷是否為缺失

判斷序列元素是否為缺失(返回與序列長(zhǎng)度一樣的bool值)

1. 判斷是否為缺失

示例代碼:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'b', 'b', 'c'],
                       'data2': [1, 2, 3, 4, 5],
                       'data3': np.NaN})
print(df_obj)
print(df_obj.isnull())

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 判斷哪些列存在缺失

isnull().any()會(huì)判斷哪些”列”存在缺失值,數(shù)據(jù)清洗中經(jīng)常用的小技巧

print(df_obj.isnull().any())

運(yùn)行結(jié)果:

在這里插入圖片描述

3. 統(tǒng)計(jì)缺失個(gè)數(shù)

isnull().sum()統(tǒng)計(jì)每一列的缺失個(gè)數(shù)

print(df_obj.isnull().sum())

運(yùn)行結(jié)果:

在這里插入圖片描述

四、notnull():判斷是否不為缺失

判斷序列元素是否不為缺失(返回與序列長(zhǎng)度一樣的bool值),用法與isnull()相似

print(df_obj.notnull())

運(yùn)行結(jié)果:

在這里插入圖片描述

五、dropna():刪除缺失值

dropna()函數(shù)可以刪除缺失值

語(yǔ)法格式:

DataFrame.dropna(
        self,
        axis: Axis = 0,
        how: str = "any",
        thresh=None,
        subset=None,
        inplace: bool = False,
    )

參數(shù)說(shuō)明

  • axis:移除行或列,默認(rèn)為0,即行含有空值移除行
  • how:‘all’所有值為空移除,'any’默認(rèn)值,包含空值移除
  • thresh:包含thresh個(gè)空值時(shí)移除
  • subset:axis軸上,指定需要處理的標(biāo)簽名稱列表
  • inplace:是否替換原始數(shù)據(jù),默認(rèn)False

1. 導(dǎo)入數(shù)據(jù)

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', np.NaN, 'b', 'c'],
                       'data2': [1, 2, np.NaN, 4, 5],
                       'data3': np.NaN,
                       'data4': [1, 2, 3, 4, 5]})
print(df_obj)

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 刪除含有NaN值的所有行

默認(rèn) axis=0

print(df_obj.dropna())

運(yùn)行結(jié)果:

在這里插入圖片描述

3. 刪除含有NaN值的所有列

設(shè)置 axis=1 刪除列

print(df_obj.dropna(axis=1))

運(yùn)行結(jié)果:

在這里插入圖片描述

4. 刪除元素都是NaN值的行

設(shè)置參數(shù) how="all",只有行一整行數(shù)據(jù)都是NaN的時(shí)候才會(huì)刪除

print(df_obj.dropna(axis=0,how="all"))

運(yùn)行結(jié)果:由于所有行都有至少有一個(gè)有效值,所有都沒(méi)刪除

在這里插入圖片描述

5. 刪除元素都是NaN值的列

print(df_obj.dropna(axis=1,how="all"))

運(yùn)行結(jié)果:

在這里插入圖片描述

6. 刪除指定列中含有缺失的行

subset參數(shù)設(shè)置指定列

# 刪除data1列有含有缺失的行
print(df_obj.dropna(subset=["data1"], axis=0))

運(yùn)行結(jié)果:

在這里插入圖片描述

六. fillna():缺失值填充

缺失值填充

語(yǔ)法格式

fillna(
        self,
        value: object | ArrayLike | None = None,
        method: FillnaOptions | None = None,
        axis: Axis | None = None,
        inplace: bool = False,
        limit=None,
        downcast=None,
    ) -> DataFrame | None

參數(shù)說(shuō)明

  • value:用于填充的空值的值。
  • method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None。定義了填充空值的方法, pad / ffill表示用前面行/列的值,填充當(dāng)前行/列的空值, backfill / bfill表示用后面行/列的值,填充當(dāng)前行/列的空值。
  • axis:選擇軸,默認(rèn)0(行),axis=1:列
  • inplace:是否替換原始數(shù)據(jù)
  • limit:int, default None。如果method被指定,對(duì)于連續(xù)的空值,這段連續(xù)區(qū)域,最多填充前 limit 個(gè)空值(如果存在多段連續(xù)區(qū)域,每段最多填充前 limit 個(gè)空值)。如果method未被指定, 在該axis下,最多填充前 limit 個(gè)空值(不論空值連續(xù)區(qū)間是否間斷)
  • downcast:dict, default is None,字典中的項(xiàng)為,為類型向下轉(zhuǎn)換規(guī)則?;蛘邽樽址?ldquo;infer”,此時(shí)會(huì)在合適的等價(jià)類型之間進(jìn)行向下轉(zhuǎn)換,比如float64 to int64 if possible。

1. 導(dǎo)入數(shù)據(jù)

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', np.NaN, 'b', 'c'],
                       'data2': [1, 2, np.NaN, 4, 5],
                       'data3': np.NaN,
                       'data4': [1, 2, 3, 4, 5]})
print(df_obj)

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 默認(rèn)全部填充

# 用0填補(bǔ)空值
print(df_obj.fillna(value=0))

運(yùn)行結(jié)果:

在這里插入圖片描述

3. 用前一行的值填補(bǔ)空值

設(shè)置參數(shù) method='pad' 用前一行的值填補(bǔ)空值

# 用前一行填充
print(df_obj.fillna(method='pad',axis=0))

運(yùn)行結(jié)果:

在這里插入圖片描述

4. 用后一列的值填補(bǔ)空值

設(shè)置參數(shù) method='backfill'

# 用后一列的值填補(bǔ)空值
print(df_obj.fillna(method='backfill', axis=1))

運(yùn)行結(jié)果:

在這里插入圖片描述

5. 設(shè)置填充個(gè)數(shù)

limit=數(shù)字,設(shè)置填充個(gè)數(shù)

# 用后一列的值填補(bǔ)空值,只填充兩個(gè)
print(df_obj.fillna(method='backfill', axis=1, limit=2))

運(yùn)行結(jié)果:

在這里插入圖片描述

七、ffill():用前一個(gè)元素填充

前向后填充缺失值,用缺失值的前一個(gè)元素填充,與fillna()相比沒(méi)有那么多可選性

語(yǔ)法格式

ffill(
        self: DataFrame,
        axis: None | Axis = None,
        inplace: bool = False,
        limit: None | int = None,
        downcast=None,
    ) -> DataFrame | None

案例說(shuō)明:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)
print(df_obj.ffill())

運(yùn)行結(jié)果:

在這里插入圖片描述

八、bfill():用后一個(gè)元素填充

后向填充缺失值,用缺失值的后一個(gè)元素填充

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)
print(df_obj.bfill())

在這里插入圖片描述

九、duplicated():判斷序列元素是否重復(fù)

判斷序列元素是否重復(fù)

語(yǔ)法格式

DataFrame.duplicated(subset=None,keep='first')

參數(shù)說(shuō)明

  • subset:列標(biāo)簽,可選, 默認(rèn)使用所有列,只考慮某些列來(lái)識(shí)別重復(fù)項(xiàng)傳入列標(biāo)簽或者列標(biāo)簽的序列
  • keep:{‘first’,‘last’,F(xiàn)alse},默認(rèn)’first’
    • first:刪除第一次出現(xiàn)的重復(fù)項(xiàng)。
    • last:刪除重復(fù)項(xiàng),除了最后一次出現(xiàn)。
    • false:刪除所有重復(fù)項(xiàng)

返回布爾型Series表示每行是否為重復(fù)行

示例代碼:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]})
print(df_obj)

print(df_obj.duplicated())

運(yùn)行結(jié)果:

在這里插入圖片描述

十、drop_duplicates():刪除重復(fù)行

刪除重復(fù)行,默認(rèn)判斷全部列,可指定按某些列判斷

語(yǔ)法格式

DataFrame.drop_duplicates(
        self,
        subset: Hashable | Sequence[Hashable] | None = None,
        keep: Literal["first"] | Literal["last"] | Literal[False] = "first",
        inplace: bool = False,
        ignore_index: bool = False,
    ) -> DataFrame | None

參數(shù)說(shuō)明

  • subset:列標(biāo)簽,可選, 默認(rèn)使用所有列,只考慮某些列來(lái)識(shí)別重復(fù)項(xiàng)傳入列標(biāo)簽或者列標(biāo)簽的序列
  • keep:{‘first’,‘last’,F(xiàn)alse},默認(rèn)’first’
    • first:刪除第一次出現(xiàn)的重復(fù)項(xiàng)。
    • last:刪除重復(fù)項(xiàng),除了最后一次出現(xiàn)。
    • false:刪除所有重復(fù)項(xiàng)
  • inplace:是否替換原數(shù)據(jù),默認(rèn)是False,生成新的對(duì)象,可以復(fù)制到新的DataFrame
  • ignore_index:bool,默認(rèn)為False,如果為True,則生成的軸將標(biāo)記為0,1,…,n-1。

1. 判斷所有列

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, 4, 5, 5, 5]})
print(df_obj)

print(df_obj.drop_duplicates())

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 按照指定列進(jìn)行判斷

print(df_obj.drop_duplicates('data2'))

運(yùn)行結(jié)果:

在這里插入圖片描述

十一、replace():替換元素

替換元素,可以使用正則表達(dá)式

語(yǔ)法格式

replace(
        self,
        to_replace=None,
        value=None,
        inplace: bool = False,
        limit=None,
        regex: bool = False,
        method: str = "pad",
    )

參數(shù)說(shuō)明

  • to_replace: 需要替換的值
  • value:替換后的值
  • inplace: 是否在原數(shù)據(jù)表上更改,默認(rèn) inplace=False
  • limit:向前或向后填充的最大尺寸間隙,用于填充缺失值
  • regex: 是否模糊查詢,用于正則表達(dá)式查找,默認(rèn) regex=False
  • method: 填充方式,用于填充缺失值
    • pad: 向前填充
    • ffill: 向前填充
    • bfill: 向后填充

1. 單個(gè)值替換

to_replace接收字符串

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)

print(df_obj.replace('a',"A"))

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 多個(gè)值替換一個(gè)值

to_replace接收列表

print(df_obj.replace([1, 2], -100))

運(yùn)行結(jié)果:

在這里插入圖片描述

3. 多個(gè)值替換多個(gè)值

to_replace接收列表,value接收列表

print(df_obj.replace([1, 2], [-100, -200]))

運(yùn)行結(jié)果:

在這里插入圖片描述

4. 使用正則表達(dá)式:

to_replace接收正則語(yǔ)法,設(shè)置 regex=True

import numpy as np
import pandas as pd

df_obj = pd.DataFrame({'data1': ['ab', 'abc', 'aaa', 'b', 'b', 'b', 'c', 'c'],
                       'data2': [1, 1, 2, 3, np.NaN, 5, 5, np.NaN]})
print(df_obj)
# 替換a開頭的
print(df_obj.replace('a.?',"A",regex=True))

運(yùn)行結(jié)果:

在這里插入圖片描述

十二、str.replace():替換元素

替換元素,可使用正則表達(dá)式

import numpy as np
import pandas as pd

s = pd.Series(['foo', 'fuz', np.nan])
print(s)
print(s.str.replace('f.', 'ba', regex=True))

運(yùn)行結(jié)果:
在這里插入圖片描述

十三、str.split.str():分割元素

以指定字符切割列

import numpy as np
import pandas as pd

data = {'洗漱用品':['毛巾|牙刷|牙膏']}

df = pd.DataFrame(data)
print(df)
print(df['洗漱用品'].str.split('|',expand=True))

運(yùn)行結(jié)果:

在這里插入圖片描述

 到此這篇關(guān)于Pandas數(shù)據(jù)清洗函數(shù)總結(jié)的文章就介紹到這了,更多相關(guān)pandas數(shù)據(jù)清洗 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)簡(jiǎn)單猜數(shù)字游戲

    Python實(shí)現(xiàn)簡(jiǎn)單猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • 基于Python編寫一個(gè)文檔密碼移除工具

    基于Python編寫一個(gè)文檔密碼移除工具

    保護(hù)文檔內(nèi)容是常見(jiàn)的需求,但有時(shí)我們可能會(huì)忘記或丟失文檔的密碼,導(dǎo)致無(wú)法訪問(wèn)重要信息,本文將介紹如何使用Python創(chuàng)建一個(gè)簡(jiǎn)單而實(shí)用的文檔密碼移除工具,需要的可以參考下
    2023-12-12
  • Python Flask RESTful使用demo演示

    Python Flask RESTful使用demo演示

    這篇文章主要為大家介紹了Python Flask RESTful使用demo演示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 基礎(chǔ)的十進(jìn)制按位運(yùn)算總結(jié)與在Python中的計(jì)算示例

    基礎(chǔ)的十進(jìn)制按位運(yùn)算總結(jié)與在Python中的計(jì)算示例

    按位運(yùn)算是計(jì)算機(jī)學(xué)習(xí)中的基礎(chǔ),Python完全支持位運(yùn)算符從而幾乎可以直接顯示出位運(yùn)算的結(jié)果,這里我們稍微總結(jié)一下基礎(chǔ)的十進(jìn)制按位運(yùn)算總結(jié)與在Python中的計(jì)算示例
    2016-06-06
  • PyTorch解決ModuleNotFoundError: No module named ‘torch’

    PyTorch解決ModuleNotFoundError: No module named

    本文主要介紹了PyTorch解決ModuleNotFoundError: No module named ‘torch’,這個(gè)錯(cuò)誤意味著我們的Python環(huán)境中沒(méi)有安裝PyTorch庫(kù),無(wú)法正常使用其功能,下面就來(lái)具體介紹一下
    2024-03-03
  • Django 過(guò)濾器匯總及自定義過(guò)濾器使用詳解

    Django 過(guò)濾器匯總及自定義過(guò)濾器使用詳解

    這篇文章主要介紹了Django 過(guò)濾器匯總及自定義過(guò)濾器使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)將不規(guī)范的英文名字首字母大寫

    Python實(shí)現(xiàn)將不規(guī)范的英文名字首字母大寫

    這篇文章給大家主要介紹的是利用map()函數(shù),把用戶輸入的不規(guī)范的英文名字,變?yōu)槭鬃帜复髮懀渌懙囊?guī)范名字。文中給出了三種解決方法,大家可以根據(jù)需要選擇使用,感興趣的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • 淺談對(duì)Python變量的一些認(rèn)識(shí)理解

    淺談對(duì)Python變量的一些認(rèn)識(shí)理解

    變量(variable)是編程的基礎(chǔ)概念,Python 的變量看似簡(jiǎn)單,深入了解卻不易.文中有非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • python 密碼學(xué)示例——理解哈希(Hash)算法

    python 密碼學(xué)示例——理解哈希(Hash)算法

    這篇文章主要介紹了哈希(Hash)算法的相關(guān)資料,幫助大家更好的利用python處理密碼,感興趣的朋友可以了解下
    2020-09-09
  • Python基于jieba分詞實(shí)現(xiàn)snownlp情感分析

    Python基于jieba分詞實(shí)現(xiàn)snownlp情感分析

    情感分析(sentiment analysis)是2018年公布的計(jì)算機(jī)科學(xué)技術(shù)名詞,它可以根據(jù)文本內(nèi)容判斷出所代表的含義是積極的還是負(fù)面的等。本文將通過(guò)jieba分詞實(shí)現(xiàn)snownlp情感分析,感興趣的可以了解一下
    2023-01-01

最新評(píng)論