Python數據分析與應用-從數據獲取到可視化(第2版)課件 第4章 數據預處理_第1頁
Python數據分析與應用-從數據獲取到可視化(第2版)課件 第4章 數據預處理_第2頁
Python數據分析與應用-從數據獲取到可視化(第2版)課件 第4章 數據預處理_第3頁
Python數據分析與應用-從數據獲取到可視化(第2版)課件 第4章 數據預處理_第4頁
Python數據分析與應用-從數據獲取到可視化(第2版)課件 第4章 數據預處理_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章數據預處理《Python數據分析與應用:從數據獲取到可視化(第2版)》學習目標/Target

掌握缺失值的檢測方式,能夠通過isnull()和notnull()函數檢測缺失值

掌握缺失值的處理方式,能夠通過dropna()或fillna()

刪除或填充缺失值

掌握重復值的檢測方式,能夠通過duplicated()方法檢測重復值

掌握重復值的處理方式,能夠通過drop_duplicates()方法刪除重復值

熟悉異常值的檢測方式,能夠通過3σ原則和箱形圖檢測異常值學習目標/Target

掌握異常值的處理方式,能夠通過replace()方法替換數據中的異常值

熟悉數據類型的轉換方式,能夠通過astype()或to_numberic()

轉換類型

掌握數據合并操作,能夠根據需求選擇適合的方案實現數據合并操作

掌握數據重塑操作,能夠根據需求選擇適合的方案實現數據重塑操作

掌握數據轉換操作,能夠根據需求選擇適合的方案實現數據轉換操作章節(jié)概述/Summary在數據分析工作前期收集的數據或多或少會存在著一些瑕疵或不足,比如數據缺失、重復、格式不統(tǒng)一等,因此我們在分析數據之前需要先對數據進行預處理,包括數據清洗、數據合并、數據重塑和數據轉換。為了處理這些問題數據,pandas提供了很多用于數據預處理的函數與方法。接下來,本章將針對pandas中數據預處理的內容進行詳細地講解。目錄/Contents01數據清洗02數據合并03數據重塑04數據轉換05案例:預處理二手房數據數據清洗4.14.1.1

缺失值的檢測掌握缺失值的檢測方式,能夠通過isnull()和notnull()函數檢測數據中是否存在缺失值學習目標4.1.1

缺失值的檢測數據清洗是一項復雜且繁瑣的工作,同時也是數據分析整個過程中最為重要的環(huán)節(jié),它主要通過一些處理方法將臟數據清洗“干凈”,使數據具有完整性、唯一性、權威性、合法性、一致性等特點,提高數據的質量。※臟數據在這里指的是對實際業(yè)務沒有實際意義、格式非法、不在指定范圍內的數據,包括缺失值、重復值、異常值等。4.1.1

缺失值的檢測缺失值是指數據集中某個或某些屬性的值是不完整的,產生的原因主要有收集數據的機器故障、人為失誤或者有意隱瞞等。概念在pandas中,缺失值一般使用None或np.nan表示,統(tǒng)一標記為NaN。表示方式4.1.1

缺失值的檢測isnull()和notnull()函數會接收一個Series類或DataFrame類的對象,返回一個跟原對象形狀相同的新對象,新對象中的數據都是表示檢測結果的布爾值。檢測方法檢測到缺失值的位置標記True,其他位置標記為Falseisnull()檢測到缺失值的位置標記False,其他位置標記為True。notnull()4.1.1

缺失值的檢測檢測方法defmissing_values_table(df):mis_val=df.isnull().sum()mis_val_percent=df.isnull().sum()/len(df)*100mis_val_table=pd.DataFrame({'數量':mis_val,'占比(%)':mis_val_percent})mis_val_table_sorted=mis_val_table.sort_values('數量',ascending=False)returnmis_val_table_sorted如果想了解DataFrame類的對象中缺失值的數量和占比情況,那么我們可以自定義一個函數,在該函數中統(tǒng)計isnull()函數的返回值為True的數量和占比。4.1.2

缺失值的處理掌握缺失值的處理方式,能夠通過dropna()或fillna()方法刪除缺失值或填充缺失值學習目標4.1.2

缺失值的處理缺失值會影響數據的完整性和準確性,使得分析結果產生偏差或無法得出可靠的結論。因此,在進行數據分析之前,通常需要對缺失值進行處理,常見的處理方式包括刪除缺失值和填充缺失值。4.1.2

缺失值的處理刪除缺失值pandas中提供了刪除缺失值的方法dropna(),該方法會刪除包含缺失值的一行或一列數據,并返回一個刪除缺失值后的對象。dropna(axis=0,

how='any',

thresh=None,

subset=None,

inplace=False)axis:用于確定刪除行或列,取值可以為0或'index'、1或'columns',其中0或'index'表示刪除包含缺失值的行,1或'columns'表示刪除包含缺失值的列,默認值為0。how:表示刪除缺失值的方式,該參數支持'any'和'how'兩種取值,其中'any'為默認值,表示有NaN時便刪除整行或整列;'all'表示只有所有值為NaN值時才刪除整行或整列。thresh:表示保留至少有N個非NaN值的行或列。4.1.2

缺失值的處理刪除缺失值保留了沒有任何缺失值的行4.1.2

缺失值的處理填充缺失值pandas中提供了填充缺失值的方法fillna(),fillna()方法既可以使用指定的值填充,也可以使用缺失值前面或后面的有效值填充。fillna(value=None,

method=None,

axis=None,

inplace=False,

limit=None,

downcast=None)value:用于填充的值,可以是標量、字典、Series類或DataFrame類的對象。method:表示填充方式,默認值為None,該參數還支持’pad’、’ffill’、’backfill’和’bfill’這幾種取值,其中’pad’或’ffill’表示前向填充;’backfill’或’bfill’表示后向填充。注意,method參數不能與value參數同時使用。limit:

可以連續(xù)填充的最大數量。4.1.2

缺失值的處理填充缺失值1.

填充常量缺失值所在的位置全部變成66.04.1.2

缺失值的處理填充缺失值2.

填充指定列Num1列缺失值的位置變成平均數2.3,Num4列缺失值的位置變成平均數13.54.1.2

缺失值的處理填充缺失值3.

前向填充Num1列缺失值的位置變成2.0,Num4列缺失值的位置變成14.04.1.3

重復值的檢測掌握重復值的檢測方式,能夠通過duplicated()方法檢測數據中是否存在重復值學習目標4.1.3

重復值的檢測重復值是指數據集中某個或某些記錄是完全相同的,產生的原因主要有機械故障或人工重復錄入。概念4.1.3

重復值的檢測語法格式pandas中提供了一個檢測重復值的方法duplicated(),該方法默認情況下會對所有數據進行檢測,檢測的標準為:只要一行數據與其他行數據的所有值是完全相同的,就會將其他行數據判定為重復值,并標記為True,非重復值標記為False。duplicated(subset=None,

keep='first')subset:用于指定檢測重復值的列索引或列索引序列,默認檢測所有列。keep:用于確定標記哪一行是重復值,該參數的取值可以為’first’(默認值)、’last’或False,其中’first’表示保留第一次出現的行,其余值相同的行被標記為重復值;’last’表示保留最后一次出現的行,其余值相同的行被標記為重復值;False表示值相同的所有行都被標記為重復值。4.1.3

重復值的檢測語法格式duplicated()方法檢測完成后,會返回一個Series類的對象,該對象中的索引對應被檢測對象的行索引,數據是表示檢測結果的布爾值,其中True代表重復值,False代表非重復值。4.1.4

重復值的處理掌握重復值的處理方式,能夠通過drop_duplicates()方法刪除重復值學習目標4.1.4

重復值的處理在數據分析中,重復值會影響分析結果的準確性,一般情況下需要進行刪除,這樣可以保證數據中保留唯一的數據記錄。4.1.4

重復值的處理語法格式pandas中提供了刪除重復值的方法drop_duplicates()。drop_duplicates(subset=None,

keep='first',

inplace=False,

ignore_index=False)inplace:表示是否替換原來的數據,默認值為False。ignore_index:表示是否重新分配索引,默認值為False。※其他參數與duplicated()方法中的參數含義相同。4.1.5

異常值的檢測熟悉異常值的檢測方式,能夠通過3σ原則和箱形圖檢測數據中是否存在異常值學習目標4.1.5

異常值的檢測異常值是指數據集中的個別值明顯偏離它所屬數據集的其余值,這些數值是不合理的或錯誤的。概念4.1.5

異常值的檢測檢測方法213σ原則只適用于符合或近似正態(tài)分布的數據集。3σ原則箱形圖沒有什么嚴格的要求,可以檢測任意的數據集。箱形圖4.1.5

異常值的檢測通過3σ原則檢測異常值3σ原則,又稱為拉依達原則,它是指先假設一組檢測數據只含有隨機誤差,對這組數據進行計算處理得到標準偏差,按一定概率確定一個區(qū)間。數值幾乎全部集中在(μ-3σ,μ+3σ)內,超出這個區(qū)間的可能性僅占不到0.3%。※凡是誤差超過(μ-3σ,μ+3σ)的數值就認為是異常值。4.1.5

異常值的檢測通過3σ原則檢測異常值pandas中并沒有直接提供基于3σ原則檢測的方法,不過我們可以根據3σ原則定義一個函數,用來檢測一組數據中是否有異常值。importnumpyasnpimportpandasaspddefthree_sigma(ser):mean_data=ser.mean()std_data=ser.std()

rule=(mean_data-3*std_data>ser)|(mean_data+3*std_data<ser)index=np.arange(ser.shape[0])[rule]outliers=ser.iloc[index]returnoutliers4.1.5

異常值的檢測通過箱形圖檢測異常值箱形圖是一種用于顯示一組數據分散情況的統(tǒng)計圖,它通過5個數據節(jié)點描述按照從大到小的順序排列的一組數據,這5個數據節(jié)點分別是上界、上四分位數、中位數、下四分位數、下界,此外還可以展示異常值。4.1.5

異常值的檢測通過箱形圖檢測異常值pandas中提供了一個boxplot()方法,該方法會根據一組數據繪制箱形圖,便于用戶從箱形圖中查看數據中是否有異常值。df_obj=

pd.read_csv(r'example_data.csv')df_obj.boxplot(column=['A','B'])左側箱形的上方有兩個空心圓點,這兩個空心圓點就是異常值。importnumpyasnpdefbox_outliers(ser):new_ser=ser.sort_values()ifnew_ser.count()%2==0:Q3=new_ser[int(len(new_ser)/2):].median()Q1=new_ser[:int(len(new_ser)/2)].median()elifnew_ser.count()%2!=0:Q3=new_ser[int((len(new_ser)-1)/2):].median()Q1=new_ser[:int((len(new_ser)-1)/2)].median()IQR=round(Q3-Q1,1)

rule=(round(Q3+1.5*IQR,1)<ser)|(

round(Q1-1.5*IQR,1)>ser)index=np.arange(ser.shape[0])[rule]outliers=ser.iloc[index]returnoutliers4.1.5

異常值的檢測通過箱形圖檢測異常值如果想進一步知道異常值的位置,可以自定義一個函數,在該函數中根據箱形圖識別異常值的規(guī)則進行判斷,即只要一組數據中的值小于Q1–1.5IQR或者大于Q3+1.5IQR,就判斷這個值是異常值。4.1.6

異常值的處理掌握異常值的處理方式,能夠通過replace()方法替換數據中的異常值學習目標4.1.6

異常值的處理異常值被檢測出來之后,需要進一步確認是否為真正的異常值,等確認完以后再根據實際情況選擇合適的方法進行解決。如果是異常值,通常情況下會使用指定的值或根據一些算法計算的值替換異常值。4.1.6

異常值的處理語法格式pandas中提供了用于替換值的方法replace(),該方法不僅可以對單個值進行替換,還可以對多個值進行批量替換。replace(to_replace=None,

value=NoDefault.no_default,

inplace=False,

limit=None,

regex=False,

method=NoDefault.no_default)to_replace:表示被替換的值。value:表示替換后的值。inplace:表示是否修改原數據。method:表示替換的方式,默認值為NoDefault.no_default,表示替換過程中沒有提供替換方式。該參數還支持取值pad、ffill和bfill,其中pad和ffill表示向前填充,bfill表示向后填充。4.1.6

異常值的處理示例1.

替換一個異常值df_obj.replace(to_replace=23,value=3)4.1.6

異常值的處理示例2.

替換多個異常值df_obj.replace(to_replace=[23,50],value=[3,2])如果希望同時替換數據中的多個異常值,那么可以在調用replace()方法替換異常值時給to_replace和value參數分別傳入一個列表,列表中分別存放了多個要被替換的異常值和替換的新值,它們的長度必須相同。4.1.7

轉換數據類型熟悉數據類型的轉換方式,能夠通過astype()方法或to_numberic()函數轉換數據類型學習目標4.1.7

轉換數據類型場景舉例如何計算交易金額?交易金額一列的數據帶有符號“¥”,它們其實都是字符串類型的,無法直接參與統(tǒng)計運算4.1.7

轉換數據類型場景舉例先把交易金額數據里面的符號“¥”去掉,再把剩余的數字由字符串類型轉換成浮點型。如何計算交易金額?交易金額一列的數據帶有符號“¥”,它們其實都是字符串類型的,無法直接參與統(tǒng)計運算。4.1.7

轉換數據類型轉換方式1.

通過astype()方法轉換數據的類型pandas中提供了用于轉換數據類型的astype()方法和to_numberic()函數。astype(dtype,copy=True,errors='raise',**kwargs)dtype:表示數據的類型。copy:是否建立副本,默認為True。errors:錯誤采取的處理方式,可以取值為raise或ignore。其中,raise表示允許引發(fā)異常,ignore表示抑制異常,默認為raise。astype()方法用于強制轉換數據的類型。4.1.7

轉換數據類型轉換方式2.

通過to_numeric()函數轉換數據類型pandas中提供了用于轉換數據類型的astype()方法和to_numberic()函數。to_numeric(arg,errors='raise',downcast=None)arg:表示要轉換的數據,可以是列表、一維數組、Series等。errors:表示錯誤采取的處理方式。該參數支持'ignore'、'raise'(默認值)、'coerce'三種取值,其中'ignore'表示無效解析時會忽略異常;'raise'表示無效解析時會引發(fā)異常;'coerce'表示無效解析時會將數值設置為NaN。to_numeric()函數用于將字符串、混合類型等一些復雜類型的數據轉換為數值類型的數據,并能夠按照不同的參數配置靈活地處理這些復雜類型的數據。4.1.7

轉換數據類型轉換方式2.

通過to_numeric()函數轉換數據類型pandas中提供了用于轉換數據類型的astype()方法和to_numberic()函數。to_numeric(arg,errors='raise',downcast=None)downcast:用于指定最終要轉換的類型,該參數的取值可以是'integer'、'signed'、'unsigned'、'float'、None。to_numeric()函數用于將字符串、混合類型等一些復雜類型的數據轉換為數值類型的數據,并能夠按照不同的參數配置靈活地處理這些復雜類型的數據。數據合并4.24.2.1

堆疊合并掌握堆疊合并的方式,能夠靈活使用concat()函數實現堆疊合并操作學習目標4.2.1

堆疊合并在進行數據分析之前,數據往往來源于不同的地方,有的來自文件,有的來自數據庫,這些數據被讀取之后需要進行合并,方便用戶統(tǒng)一進行相關的操作。為了幫助用戶實現數據合并的功能,pandas中提供了幾種數據合并的方式,分別是堆疊合并、主鍵合并、根據索引合并、合并重疊數據。4.2.1

堆疊合并語法格式堆疊合并指的是沿著某個軸的方向將兩個或兩個以上的對象按照一定的邏輯關系進行合并。pandas中提供了一個用于堆疊合并的函數concat()。concat(objs,

axis=0,

join='outer',

ignore_index=False,

keys=None,

levels=None,

names=None,

verify_integrity=False,

sort=False,

copy=True)objs:表示要合并的多個對象,該參數接收包含Series或DataFrame對象的序列或字典。axis:表示合并的軸方向,取值可以是0(默認值)或'index'和1或'columns',其中0或'index'表示縱向堆疊,1或'columns'表示橫向堆疊。4.2.1

堆疊合并語法格式堆疊合并指的是沿著某個軸的方向將兩個或兩個以上的對象按照一定的邏輯關系進行合并。pandas中提供了一個用于堆疊合并的函數concat()。concat(objs,

axis=0,

join='outer',

ignore_index=False,

keys=None,

levels=None,

names=None,

verify_integrity=False,

sort=False,

copy=True)join:表示連接的方式,取值可以是‘inner’或‘outer’(默認值),其中‘inner’表示內連接,即取所有對象共有的行索引或列索引(交集部分),沒有數據的位置填充為NaN;'outer'表示外連接,即取所有對象全部的行索引或列索引(并集部分),沒有數據的位置填充為NaN。ignore_index:是否忽略索引,默認為False。4.2.1

堆疊合并橫向堆疊與外連接當使用concat()函數合并多個對象時,若axis參數的值是1或'columns',且join參數的值是'outer',則此時會采用橫向堆疊與外連接的方式進行合并。4.2.1

堆疊合并橫向堆疊與外連接當使用concat()函數合并多個對象時,若axis參數的值是0或'index',且join參數的值是'inner',則此時會采用縱向堆疊與內連接的方式進行合并。4.2.2

主鍵合并掌握主鍵合并的方式,能夠靈活使用merge()函數實現主鍵合并操作學習目標4.2.2

主鍵合并概念主鍵合并類似于關系型數據庫的主鍵查詢操作,它指的是根據一個或多個鍵將兩個對象進行合并,大多數情況下會將這兩個對象中共有的列作為合并的鍵。4.2.2

主鍵合并語法格式pandas中提供了一個用于主鍵合并的函數merge()。concat(objs,

axis=0,

join='outer',

ignore_index=False,

keys=None,

levels=None,

names=None,

verify_integrity=False,

sort=False,

copy=True)left:參與合并的DataFrame類的對象。right:參與合并的對象,可以是DataFrame類的對象或Series類的對象,其中Series類的對象必須有名稱。4.2.2

主鍵合并語法格式pandas中提供了一個用于主鍵合并的函數merge()。concat(objs,

axis=0,

join='outer',

ignore_index=False,

keys=None,

levels=None,

names=None,

verify_integrity=False,

sort=False,

copy=True)how:表示合并方式,支持'inner'(默認值)、'outer'、'left'、'right'、'cross'共5種取值,其中'inner'代表基于left與right鍵的交集合并,類似于數據庫的內連接操作;'outer'代表基于left與right鍵的并集合并,類似于數據庫的全外連接操作,'left'代表基于left的鍵合并,類似于數據庫的左外連接操作;'right'代表基于right的鍵合并,類似于數據庫的右外連接操作;'cross'代表基于left與right創(chuàng)建的笛卡爾積合并。4.2.2

主鍵合并語法格式pandas中提供了一個用于主鍵合并的函數merge()。concat(objs,

axis=0,

join='outer',

ignore_index=False,

keys=None,

levels=None,

names=None,

verify_integrity=False,

sort=False,

copy=True)on:表示合并的鍵,可以是列索引或包含列索引的列表,列索引必須同時存在于left與right中。sort:是否排序,默認值為False。suffixes:表示重名的列添加的后綴,默認值為(‘_x’,

‘_y’)。left_index:是否使用left的索引進行合并,默認值為False。right_index:是否使用right的索引進行合并,默認值為False。4.2.2

主鍵合并示例1.

根據一個鍵合并4.2.2

主鍵合并示例2.

根據兩個鍵合并4.2.2

主鍵合并示例3.采用全外連接的方式合并4.2.2

主鍵合并示例4.

采用左連接的方式合并4.2.2

主鍵合并示例若兩個對象沒有標簽索引相同的列,則可以在調用merge()函數進行合并時,同時給left_index與right_index參數傳入值True,此時會將這兩個對象的行索引作為鍵。importpandasaspdleft=pd.DataFrame({'A':['A0','A1','A2'],'B':['B0','B1','B2']})right=pd.DataFrame({'C':['C0','C1','C2'],'D':['D0','D1','D2']},index=['a','b','c'])result=pd.merge(left=left,right=right,how='outer',

left_index=True,right_index=True)4.2.3

根據索引合并掌握根據索引合并的方式,能夠靈活使用join()方法實現根據索引合并的操作學習目標4.2.3

根據索引合并概念根據索引合并指的是根據行索引或列索引將多個對象合并成一個對象。4.2.3

根據索引合并語法格式pandas的DataFrame類中提供了一個用于根據索引合并多個對象的方法join(),該方法通常會根據列索引來合并多個對象,如果多個對象中有重名的列,且沒有明確區(qū)分重名的列,此時合并會導致程序報錯。join(other,

on=None,

how='left',

lsuffix='',

rsuffix='',

sort=False)other:表示要合并的對象,可以是DataFrame類的對象、Series類的對象或者包含DataFrame類對象的列表,其中Series類的對象必須有名稱,該名稱會作為合并后對象的列名。on:表示合并的列索引。4.2.3

根據索引合并語法格式pandas的DataFrame類中提供了一個用于根據索引合并多個對象的方法join(),該方法通常會根據列索引來合并多個對象,如果多個對象中有重名的列,且沒有明確區(qū)分重名的列,此時合并會導致程序報錯。join(other,

on=None,

how='left',

lsuffix='',

rsuffix='',

sort=False)how:表示合并的方式,該參數支持'left'、'right'、'outer'、'inner'共4種取值,默認值為'left',代表使用左連接的方式合并多個對象,即以左側對象為基準,保留左側對象的全部數據,右側對象有跟左側對象重疊的索引,就保留數據,否則就舍棄數據。lsuffix:表示左側對象有重名的列時給該列的名稱添加的后綴名。rsuffix:表示右側對象有重名的列時給該列的名稱添加的后綴名。4.2.3

根據索引合并示例1.

沒有重疊列4.2.3

根據索引合并示例2.

有重疊列4.2.4

合并重疊數據掌握合并重疊數據的方式,能夠靈活使用combine_first()方法實現合并重疊數據的操作學習目標4.2.4

合并重疊數據語法格式在處理數據時,如果一個DataFrame類的對象有缺失的數據,而這些缺失的數據我們希望可以使用其他DataFrame類對象的數據進行填充,這時可以通過combine_first()方法實現這個效果。combine_first(other)上述方法中只有一個參數other,該參數表示用于填充缺失值的DataFrame類的對象。4.2.4

合并重疊數據示例left存在3個缺失的數據,而right的數據是完整的。數據重塑4.34.3.1

重塑分層索引掌握重塑分層索引的方式,能夠通過stack()和unstack()方法實現重塑分層索引的操作學習目標4.3.1

重塑分層索引pandas中實現重塑分層索引功能的方法有stack()和unstack()方法,其中stack()方法用于將數據的列“旋轉”為行;unstack()方法用于將數據的行“旋轉”為列。4.3.1

重塑分層索引stack()方法DataFrame.stack(level=-1,dropna=True)level:表示操作內層索引。若設為0,表示操作外層索引。dropna:表示是否將旋轉后產生的缺失值刪除,若設為True,則表示自動過濾缺失值,設置為False則相反。4.3.1

重塑分層索引stack()方法DataFrame重塑為有分層索引的Series重塑4.3.1

重塑分層索引unstack()方法DataFrame.unstack(level=-1,fill_value=None)level:默認為-1,表示操作內層索引,0表示操作外層索引。fill_value:用于指定在產生缺失值時要替換的值。4.3.1

重塑分層索引unstack()方法有分層索引的Series重塑為DataFrame重塑4.3.1

重塑分層索引stack()與unstack()方法還可以將有多層索引的DataFrame類的對象重塑成有多層索引的另一個DataFrame類的對象。4.3.1

重塑分層索引分層索引的重塑操作默認是對內層索引進行旋轉,當需要對分層索引的外層索引進行旋轉時,需要將stack()方法中l(wèi)eve參數的值設置為0即可。

4.3.2

軸向旋轉掌握軸向旋轉的方式,能夠通過pivot()方法實現軸向旋轉的操作學習目標4.3.2

軸向旋轉場景舉例這張表格無法快速比較同一款商品在活動前后的價格浮動情況。這張表格可以快速比較同一款商品在活動前后的價格浮動情況。4.3.2

軸向旋轉語法格式pandas中提供了pivot()方法實現軸向旋轉的功能,它會根據給定的行索引或列索引重新組織一個DataFrame類的對象。DataFrame.pivot(index=None,columns=None,values=None)index:用于創(chuàng)建新對象的行索引。如果未設置,則使用原對象的行索引。columns:用于創(chuàng)建新對象的列索引。如果未設置,則使用原對象的列索引。values:用于填充新對象中的值。數據轉換4.44.4.1

面元劃分掌握面元劃分的方式,能夠通過cut()函數實現面元劃分的操作學習目標面元劃分是指連續(xù)數據被離散化處理,按一定的映射關系劃分為相應的面元,這里的面元可以理解為區(qū)間。4.4.1

面元劃分左側表格的每個數值對應著右側表格中的一個面元。4.4.1

面元劃分語法格式pandas中使用cut()函數能夠實現面元劃分操作,cut()函數會采用等寬法對連續(xù)型數據進行離散化處理。cut(x,

bins,

right=True,

labels=None,

retbins=False,

precision=3,

include_lowest=False,

duplicates='raise',

ordered=True)x:表示面元劃分的連續(xù)數據,可以取值為一維數組或Series類對象。bins:表示劃分面元的依據。若為int類型的值,則代表面元的數目;若為list、tuple、array類型的值,則代表劃分的區(qū)間,每兩個值的間隔為一個區(qū)間。right:表示右端點是否為閉區(qū)間,默認為True。4.4.1

面元劃分語法格式pandas中使用cut()函數能夠實現面元劃分操作,cut()函數會采用等寬法對連續(xù)型數據進行離散化處理。cut(x,

bins,

right=True,

labels=None,

retbins=False,

precision=3,

include_lowest=False,

duplicates='raise',

ordered=True)labels:表示劃分的各區(qū)間的標簽。retbins:表示是否返回每個區(qū)間的邊緣值,默認值為False,即不返回每個區(qū)間的邊緣值。precision:用于確定每個區(qū)間的邊緣值的精度,默認值為3。include_lowest:表示是否包含區(qū)間的左端點,默認為False。4.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論