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

使用Pandas實現(xiàn)清洗客戶編碼異常數(shù)據(jù)

 更新時間:2023年07月19日 15:54:49   作者:黃昏中起飛的貓頭鷹  
在不同行業(yè)中,我們經(jīng)常會遇到一個麻煩的問題:數(shù)據(jù)清洗,尤其是當(dāng)我們需要處理客戶編碼異常數(shù)據(jù)時,下面小編就來和大家分享一下常用的解決辦法吧

前言

在不同行業(yè)中,我們經(jīng)常會遇到一個麻煩的問題:數(shù)據(jù)清洗。尤其是當(dāng)我們需要處理客戶編碼異常數(shù)據(jù)時,這個問題變得尤為重要。想象一下,許多銀行都是以客戶為單位管理數(shù)據(jù)的,因此每個客戶都有一個獨特的編碼。在處理這些數(shù)據(jù)時,我們常常會面臨以下問題:

1.客戶編碼有一個為空,另一個不為空的情況。

2.客戶編碼存在多個不同的值。

3.客戶編碼為空。

針對這些令人頭疼的問題,接下來我將詳細(xì)介紹如何使用pandas清洗客戶編碼異常數(shù)據(jù)。

創(chuàng)建一個新的數(shù)據(jù)集

首先我們要創(chuàng)建一個新的數(shù)據(jù)集,這個數(shù)據(jù)集的目的是用來對客戶的編碼進(jìn)行清洗。

import pandas as pd
import numpy as np
data = {
    '主鍵': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    'MDG編碼': [np.nan, np.nan, 'A001', 'A002', np.nan, 'B001', 'B002', np.nan, 'C001', 'C002'],
    '客戶名稱': ['客戶1', '客戶1', '客戶1', '客戶2', '客戶2', '客戶3', '客戶3', '客戶4', '客戶4', '客戶4'],
    '證件號': ['111111', '111111', '111111', '222222', '222222', '333333', '333333', '444444', '444444', '444444'],
    '客戶類型': ['類型1', '類型1', '類型1', '類型2', '類型2', '類型3', '類型3', '類型4', '類型4', '類型4']
}
yb = pd.DataFrame(data)
yb

輸出

字符串空值轉(zhuǎn)換

pandas識別空字符串為非空值,所以我們需要將編碼為空的數(shù)據(jù)轉(zhuǎn)換為pandas能識別的NaN。

yb.MDG編碼.replace(to_replace=r'^\s*$', value=np.nan, regex=True, inplace=True)
cf = yb[(yb.duplicated(['客戶名稱'], keep=False)) & (yb.客戶類型 != '類型1')] #只獲取有重復(fù)的客戶,減少需要處理的數(shù)據(jù)量
cf

輸出:同上

構(gòu)造分組函數(shù)、不同異常數(shù)據(jù)進(jìn)行分組

cf['count'] = np.nan
cf.sort_values(by=['客戶名稱','MDG編碼'],inplace=True)
def abc(x):
    df = set(x[x.notnull()])
    if len(df)==1:
        if len(set(x))>1:
            return 2
        else:
            return 1
    elif len(df)>=2:
        return 3
cf['count'] = cf.groupby(['客戶名稱'])['MDG編碼'].transform(abc)
cf

輸出

這段代碼的作用是在DataFrame(cf)中創(chuàng)建一個新的列count,然后根據(jù)'客戶名稱''MDG編碼'對DataFrame進(jìn)行排序。接下來,定義了一個函數(shù)abc(x)

該函數(shù)首先將非空值存儲在一個集合df中。如果集合df中的元素個數(shù)為1,且字段x中的不同值個數(shù)多于1個,則返回2。如果集合df中的元素個數(shù)為1,且字段x中的不同值個數(shù)只有1個,則返回1。如果集合df中的元素個數(shù)大于等于2,則返回3。

最后,使用cf.groupby(['客戶名稱'])['MDG編碼'].transform(abc)將函數(shù)abc應(yīng)用到分組后的cf DataFrame的'MDG編碼'列中,并將結(jié)果賦值給cf'count'列。

查詢正確的客戶編碼

#查詢mdg編碼正確的數(shù)據(jù)
cf2 = cf[cf['count']==2]
cf1 = cf2.loc[cf2.MDG編碼.notnull()]
cf1 = cf1.drop_duplicates('客戶名稱')  #mdg編碼不為空,且mdg編碼正確的數(shù)據(jù)
cf1

輸出

獲取需要修改的異常客戶的id

將mdg編碼為空的客戶 與 正確MDG編碼的客戶進(jìn)行匹配,獲取需要修改的客戶數(shù)據(jù)

cf3 = cf2[cf2.MDG編碼.isnull()].merge(cf1[['客戶名稱','MDG編碼']],how='left',on='客戶名稱')
cf3 = cf3[['主鍵','MDG編碼_y','客戶名稱','證件號','客戶類型','MDG編碼_x']]
cf3  #MDG編碼_y為正確編碼,主鍵為需要修改的id

輸出

上述情況是相同客戶有一個正確編碼和一個編碼為空的情況,對于相同客戶有兩個及兩個以上不同編碼的情況,使用下述方法查詢:

cf[cf['count']==3] #多個不相等mdg編碼

輸出

這類數(shù)據(jù)由于編碼有多個不相同,需要根據(jù)業(yè)務(wù)進(jìn)一步核實

總結(jié)

本文主要介紹了在 pandas中清洗客戶編碼異常數(shù)據(jù)的方法,使用這個方法我們可以快速的清洗客戶編碼異常數(shù)據(jù)。那么如果你想要對這個方法進(jìn)行優(yōu)化的話,我們還可以對數(shù)據(jù)進(jìn)行清洗。比如說我們可以對原始數(shù)據(jù)進(jìn)行一次排序,然后在排序后的數(shù)據(jù)中尋找是否存在空值、重復(fù)值和重復(fù)編碼等問題。

以上就是使用Pandas實現(xiàn)清洗客戶編碼異常數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于Pandas清洗異常數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python實現(xiàn)VPN搭建的流程步驟

    使用Python實現(xiàn)VPN搭建的流程步驟

    VPN(虛擬私人網(wǎng)絡(luò))是一種有效的解決方案,可以幫助我們在網(wǎng)絡(luò)上匿名瀏覽,保護(hù)數(shù)據(jù)傳輸?shù)陌踩?雖然市面上有許多商業(yè)VPN服務(wù),但你也可以通過Python自己搭建一個簡單的VPN,本文將介紹如何用Python建立自己的VPN,需要的朋友可以參考下
    2024-06-06
  • 基于Python制作一個匯率換算程序

    基于Python制作一個匯率換算程序

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言制作一個匯率換算程序,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-09-09
  • keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解

    keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解

    這篇文章主要介紹了keras讀取訓(xùn)練好的模型參數(shù)并把參數(shù)賦值給其它模型詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python 自動監(jiān)控最新郵件并讀取的操作

    python 自動監(jiān)控最新郵件并讀取的操作

    這篇文章主要介紹了python 自動監(jiān)控最新郵件并讀取的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • tensorflow如何將one_hot標(biāo)簽和數(shù)字(整數(shù))標(biāo)簽進(jìn)行相互轉(zhuǎn)化

    tensorflow如何將one_hot標(biāo)簽和數(shù)字(整數(shù))標(biāo)簽進(jìn)行相互轉(zhuǎn)化

    這篇文章主要介紹了tensorflow如何將one_hot標(biāo)簽和數(shù)字(整數(shù))標(biāo)簽進(jìn)行相互轉(zhuǎn)化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python實現(xiàn)FTP文件定時自動下載的步驟

    Python實現(xiàn)FTP文件定時自動下載的步驟

    這篇文章主要介紹了Python實現(xiàn)FTP文件定時自動下載的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • opencv3/C++實現(xiàn)視頻讀取、視頻寫入

    opencv3/C++實現(xiàn)視頻讀取、視頻寫入

    今天小編就為大家分享一篇opencv3/C++實現(xiàn)視頻讀取、視頻寫入,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python變量的定義和運算符的使用

    Python變量的定義和運算符的使用

    這篇文章主要介紹了Python變量的定義和運算符的使用,Python和C/Java不同,在定義變量的時候不需要顯示的指定變量的類型,在賦值的時候自動就會確定類型,需要的朋友可以參考下
    2023-05-05
  • python文件與路徑管理方法

    python文件與路徑管理方法

    這篇文章主要介紹了python文件與路徑管理方法,文章屬于python使用技巧的分享,下文圍繞文件與路徑管理相關(guān)內(nèi)容,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)

    Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)

    本文介紹基于Python語言,讀取Excel表格文件,基于我們給定的規(guī)則,對其中的數(shù)據(jù)加以篩選,將不在指定數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)剔除,保留符合我們需要的數(shù)據(jù)的方法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08

最新評論