国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

這篇具有很好參考價(jià)值的文章主要介紹了pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.?刪除重復(fù)行

使用duplicated()函數(shù)檢測(cè)重復(fù)的行。

返回布爾類型的Series對(duì)象,每個(gè)元素對(duì)應(yīng)一行,如果該行不是第一次出現(xiàn),則元素為True。

def make_df(indexs, columns):    
    data = [[str(j)+str(i) for j in columns] for i in indexs]
    df = pd.DataFrame(data=data, index=indexs, columns=columns)
    return df
df = make_df([1, 2, 3, 4], list('ABCD'))
df

# 讓第一行和第二行重復(fù)
df.loc[1] = df.loc[2]
df

# 判斷是否和前面的行重復(fù)了
df.duplicated()
df.duplicated(keep='first')  # 保留第一行
df.duplicated(keep='last')  # 保留最后一行
df.duplicated(keep=False)  # 標(biāo)記所有重復(fù)行,不保留任何一行

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

df.loc[1, 'D'] = 'DDD'
df

# subset: 子集
df.duplicated(subset=['A','B','C'])

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

?使用drop_duplicates()函數(shù)刪除重復(fù)的行:

print(df.drop_duplicates())
df.drop_duplicates(subset=['A', 'B', 'C'])
df.drop_duplicates(subset=['A', 'B', 'C'], keep='last')

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

2. 映射

映射的含義:創(chuàng)建一個(gè)映射關(guān)系列表,把values元素和一個(gè)特定的標(biāo)簽或者字符串綁定。

replace()函數(shù):替換元素

index = ['張三', '張三豐', '李白', '杜甫']
columns = ['Python', 'Java', 'H5', "UI"]
data = np.random.randint(0, 100, size=(4, 4))
df = pd.DataFrame(data=data, index=index, columns=columns)
df

# 替換元素
df.replace({5: 50, 1: 100})

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

map()函數(shù):新建一列,map()函數(shù)中可以使用lambda函數(shù),適合處理某一單獨(dú)的列

df2 = df.copy()
df2

# map一般用在Series數(shù)據(jù)結(jié)構(gòu),不能用于DataFrame
# df2['Python'].map({16: 160, 12: 120, 17: 170, 60:600})
# 將Python的每個(gè)人的成績(jī)乘以10
df2['Python'].map(lambda x : x * 10)
# 新增一列
df2['Pandas'] = df2['Python'].map(lambda x : x * 10)
df2

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

# 新增一列:判斷Java的成績(jī)是否及格
df2['Java是否及格'] = df2['Java'].map(lambda n: '及格'  if n>=60 else '不及格')
df2

# 使用普通函數(shù)
# 新增一列: 判斷UI成績(jī)
#  <60  不及格
#  60<=n <80 及格
#  >=80 優(yōu)秀
def fn(n):
    if n < 60:
        return '不及格'
    elif n < 80:
        return '及格'
    return '優(yōu)秀'
df2['UI等級(jí)'] = df2['UI'].map(fn)
df2

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

rename()函數(shù):替換索引。

df3.rename({'張三': 'Mr Zhang'})  # 默認(rèn)修改行索引名
df3.rename({'Python': '派森'}, axis=1)  # 修改列索引名
df3.rename(index={'張三': 'Mr Zhang'}) # 修改行索引名
df3.rename(columns={'Python': '派森'}) # 修改列索引名

# 重置索引
df3.reset_index()

# 設(shè)置行索引
df3.set_index(keys=['H5'])

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

apply()函數(shù):既支持 Series,也支持 DataFrame

df = pd.DataFrame(data=np.random.randint(0, 10, size=(5, 3)),
                              index=list('ABCDE'),
                              columns=['Python', 'NumPy', 'Pandas']
                 )
df
# 用于Series, 其中x表式的Series中元素
df['Python'].apply(lambda x:  True if x>5 else False)
# 用于DataFrame, 其中x是DataFrame中某列或某行的Series數(shù)據(jù)
df.apply(lambda x : x.mean(), axis=0)  # 求每一列數(shù)據(jù)的平均值
df.apply(lambda x : x.mean(), axis=1)  # 求每一行數(shù)據(jù)的平均值

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

# 自定義方法
def fn2(x):
    return  (np.round(x.mean(), 1), x.count())  # 平均值,計(jì)數(shù)
df.apply(fn2, axis=1)

# applymap: DataFrame專有的方法,其中的x是每個(gè)元素
df.applymap(lambda x : x + 100) 

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

transform()函數(shù)

df = pd.DataFrame(data=np.random.randint(0, 10, size=(5, 3)),
                              index=list('ABCDE'),
                              columns=['Python', 'NumPy', 'Pandas']
                 )
df
# Series中使用transform
# 可以執(zhí)行多項(xiàng)計(jì)算
df['Python'].transform([np.sqrt, np.exp])

# DataFrame中使用transform
def convert(x):
    if x.mean() > 5:
        return x * 10
    return x * (-10)   
df.transform(convert)  # 處理每一列
df.transform(convert, axis=1)  # 處理每一行

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

3.?異常值檢測(cè)和過濾?

describe():查看每一列的描述性統(tǒng)計(jì)量

df.std():可以求得DataFrame對(duì)象每一列的標(biāo)準(zhǔn)差

df.drop():刪除特定索引

unique():唯一,去重,DataFrame沒有unique,Series調(diào)用unique。

df.query:按條件查詢

df2.drop('A')  # 默認(rèn)刪除行
df2.drop('Python', axis=1)  # 刪除列
df2.drop(index='A')  # 刪除行
df2.drop(columns='Python')  # 刪除列
# 刪除多列或多行
df2.drop(columns=['NumPy', 'Python'])
df2.drop(index=['A', 'B'], inplace=True)

df['Python'].unique()
# ==, >, <
# and, &
#  or , | 
# in 
df.query('Python == 9')  # 找到Python列中等于9的所有行
df.query('Python < 8') 
df.query('Python>6 and NumPy==2')
df.query('Python>6 & NumPy==2')
df.query('Python==3 or NumPy==2')
df.query('Python==3 | NumPy==2')
df.query('Python in [3, 4, 5, 6]')  # 成員運(yùn)算符
# 使用變量
n = 7
df.query('Python == @n')  # @n 表式使用變量n的值
m =  [3, 4, 5, 6]
df.query('Python in @m')  # 成員運(yùn)算符

df.sort_values(): 根據(jù)值排序;

df.sort_index(): 根據(jù)索引排序。

#  sort_values : 默認(rèn)按照列名排序,默認(rèn)升序  (常用)
df.sort_values('Python')  
# ascending: 是否升序,默認(rèn)是True
df.sort_values('Python', ascending=False)  # 降序

# 根據(jù)行索引名排序,會(huì)把列進(jìn)行排序(不常用)
df.sort_values('B', axis=1)
# 按照索引名排序 (不常用)
# 默認(rèn)是對(duì)行索引進(jìn)行排序,默認(rèn)是升序
df.sort_index(ascending=False)
# 按照列索引排序
df.sort_index(ascending=False, axis=1)

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

df.info(): 查看數(shù)據(jù)信息

df.info()

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

4. 抽樣?

使用.take()函數(shù)排序;可以借助np.random.permutation()函數(shù)隨機(jī)排序。

df2.take([1, 0, 2])  # 行排列
df2.take([1, 0, 2], axis=1)  # 列排列

# 隨機(jī)排列
np.random.permutation([0, 1, 2])

# 無放回抽樣: 依次隨機(jī)取出,沒有重復(fù)值
df2.take(np.random.permutation([0, 1, 2]))

?pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

# 有放回抽樣: 可能會(huì)出現(xiàn)重復(fù)值

np.random.randint(0, 3, size=5)

df2.take(np.random.randint(0, 3, size=5))

pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣

?文章來源地址http://www.zghlxwxcb.cn/news/detail-485938.html

?

?

?

?

?

?

?

?

?

?

?

?

到了這里,關(guān)于pandas---刪除重復(fù)行、映射、異常值檢測(cè)與過濾、抽樣的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • pandas 識(shí)別最大值并去除重復(fù)項(xiàng)

    碰見一個(gè)七千多萬行的數(shù)據(jù),結(jié)構(gòu)是這樣的 id a b c d 2333 2 3 4 5 233 3 3 4 5 12333 1 3 3 5 12333 1 3 4 5 第1列是標(biāo)識(shí),a,b,c,d是記錄的數(shù)值,標(biāo)識(shí)里面會(huì)有重復(fù)的,目的是想要找到唯一id,并且后面數(shù)值加起來最大的那一行。 開始直接做了 df[\\\'id\\\'].value_counts().index ,然后遍歷里面id,再匹配

    2024年02月07日
    瀏覽(23)
  • [MFC]過濾數(shù)組中重復(fù)的數(shù)據(jù)

    [MFC]過濾數(shù)組中重復(fù)的數(shù)據(jù)

    之前在幫客戶開發(fā)一個(gè)自動(dòng)讀取物理網(wǎng)卡地址功能的時(shí)候,獲取到的網(wǎng)卡地址偶爾會(huì)出現(xiàn)重復(fù),如下圖,無論是單張網(wǎng)卡還是多張網(wǎng)卡都存在這個(gè)問題。由于我獲取的網(wǎng)卡地址是存放于CStringArray中,所以我得對(duì)其中的數(shù)據(jù)進(jìn)行去重才能正常地顯示網(wǎng)卡地址。 ?為此,我在網(wǎng)上

    2024年02月05日
    瀏覽(18)
  • 【RocketMQ】RocketMQ標(biāo)簽、過濾及消息重復(fù)消費(fèi)

    【RocketMQ】RocketMQ標(biāo)簽、過濾及消息重復(fù)消費(fèi)

    參考文檔: 官方文檔 Topic 與 Tag 都是業(yè)務(wù)上用來歸類的標(biāo)識(shí),區(qū)別在于 Topic 是一級(jí)分類,而 Tag 可以理解為是二級(jí)分類。使用 Tag 可以實(shí)現(xiàn)對(duì) Topic 中的消息進(jìn)行過濾。 注: Topic:消息主題,通過 Topic 對(duì)不同的業(yè)務(wù)消息進(jìn)行分類。 Tag:消息標(biāo)簽,用來進(jìn)一步區(qū)分某個(gè) Topic 下

    2024年02月07日
    瀏覽(30)
  • Pandas實(shí)戰(zhàn)100例 | 案例 50: 分組后的過濾

    案例 50: 分組后的過濾 知識(shí)點(diǎn)講解 在 Pandas 中,你可以對(duì)分組后的數(shù)據(jù)進(jìn)行過濾,根據(jù)每個(gè)組的特性選擇或排除特定的組。這通常通過 groupby 結(jié)合 filter 方法實(shí)現(xiàn)。 分組后的過濾 : 使用 filter 方法,可以根據(jù)分組的屬性(如組內(nèi)均值、最大值等)決定是否保留整個(gè)組。 示例代

    2024年01月15日
    瀏覽(77)
  • python中pandas如何過濾輸出【以下為ChatGPT編寫】

    在 Python 中使用 Pandas 庫(kù)進(jìn)行數(shù)據(jù)分析時(shí),你可以使用條件過濾來篩選和過濾輸出。Pandas 提供了多種方法來實(shí)現(xiàn)數(shù)據(jù)的過濾和篩選操作,(ChatGPT編寫)以下是一些常用的方式: 1. 使用布爾索引: ? ?```python ? ?import pandas as pd ? ? ? ?# 創(chuàng)建一個(gè)示例DataFrame ? ?data = {\\\'Name\\\': [\\\'Ali

    2024年02月09日
    瀏覽(16)
  • 異常過濾器—MVC中異常過濾器使用

    異常過濾器—MVC中異常過濾器使用

    異常過濾器( Exception Filters )是 ASP.NET Core 中用于處理全局異常的機(jī)制。它們?cè)试S你在發(fā)生異常時(shí)捕獲、處理和記錄異常,并提供自定義的異常處理邏輯。異常過濾器在整個(gè)應(yīng)用程序范圍內(nèi)生效,可以用于處理各種異常情況。用于實(shí)現(xiàn)常見的錯(cuò)誤處理策略,沒有之前和之后事

    2024年02月13日
    瀏覽(95)
  • 軟件測(cè)試|MySQL DISTINCT關(guān)鍵字過濾重復(fù)數(shù)據(jù)

    軟件測(cè)試|MySQL DISTINCT關(guān)鍵字過濾重復(fù)數(shù)據(jù)

    簡(jiǎn)介 在MySQL中,有時(shí)候我們需要從表中檢索唯一的、不重復(fù)的數(shù)據(jù)。這時(shí),我們可以使用 DISTINCT 來過濾掉重復(fù)的數(shù)據(jù)行。在本文中,我們將深入探討MySQL中 DISTINCT 的用法以及如何在查詢中使用它來得到不重復(fù)的結(jié)果集。 基本語法 DISTINCT 用于在 SELECT 語句中指示

    2024年02月02日
    瀏覽(27)
  • chatgpt賦能python:Python異常過濾教程:如何正確處理和過濾Python中的異常

    Python是一種非常流行的編程語言,廣泛應(yīng)用于各種應(yīng)用程序和領(lǐng)域中。在我們編寫Python程序的過程中,通常要處理各種異常情況,比如用戶輸入錯(cuò)誤,文件讀取錯(cuò)誤等等。正確處理和過濾這些異常情況是保證我們的程序能夠正常運(yùn)行的關(guān)鍵。 在本文中,我們將介紹如何正確處

    2024年02月09日
    瀏覽(21)
  • 異常數(shù)據(jù)過濾算法MATLAB

    (1)萊茵達(dá)準(zhǔn)則 萊因達(dá)準(zhǔn)則又稱3sigma準(zhǔn)則:本方法適合樣本數(shù)據(jù)服從正態(tài)分布,且樣本量不小于8。根據(jù)萊因達(dá)準(zhǔn)則,當(dāng)觀測(cè)數(shù)據(jù)服從正態(tài)分布時(shí),殘差落在3倍標(biāo)準(zhǔn)差[-3,3]的概率超過99. 7%,落在此區(qū)域外的概率不超過0. 3%。因此,可以認(rèn)為殘差落于該區(qū)域外的測(cè)量數(shù)據(jù)為異常值

    2024年02月13日
    瀏覽(12)
  • 【100天精通Python】Day59:Python 數(shù)據(jù)分析_Pandas高級(jí)功能-多層索引創(chuàng)建訪問切片和重塑操作,pandas自定義函數(shù)和映射功能

    目錄 1 多層索引(MultiIndex) 1.1 創(chuàng)建多層索引 1.1.1 從元組創(chuàng)建多層索引

    2024年02月09日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包