亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python?pandas處理缺失值方法詳解(dropna、drop、fillna)

 更新時(shí)間:2022年08月16日 09:22:03   作者:墨氳  
缺失數(shù)據(jù)會(huì)在很多數(shù)據(jù)分析應(yīng)用中出現(xiàn),pandas的目標(biāo)之一就是盡可能無痛地處理缺失值,下面這篇文章主要給大家介紹了關(guān)于Python?pandas處理缺失值方法的相關(guān)資料,處理方法分別是dropna、drop、fillna,需要的朋友可以參考下

面對缺失值三種處理方法:

  • option 1: 去掉含有缺失值的樣本(行)
  • option 2:將含有缺失值的列(特征向量)去掉
  • option 3:將缺失值用某些值填充(0,平均值,中值等)

對于dropna和fillna,dataframe和series都有,在這主要講datafame的

對于option1:

使用DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

參數(shù)說明:

  • axis:
    • axis=0: 刪除包含缺失值的行
    • axis=1: 刪除包含缺失值的列
  • how: 與axis配合使用
    • how=‘any’ :只要有缺失值出現(xiàn),就刪除該行貨列
    • how=‘all’: 所有的值都缺失,才刪除行或列
  • thresh: axis中至少有thresh個(gè)非缺失值,否則刪除
  • 比如 axis=0,thresh=10:標(biāo)識(shí)如果該行中非缺失值的數(shù)量小于10,將刪除改行
  • subset: list
  • 在哪些列中查看是否有缺失值
  • inplace: 是否在原數(shù)據(jù)上操作。如果為真,返回None否則返回新的copy,去掉了缺失值

建議在使用時(shí)將全部的缺省參數(shù)都寫上,便于快速理解

examples:

 	   	      df = pd.DataFrame(
                                        {"name": ['Alfred', 'Batman', 'Catwoman'],         
                                          "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                                         "born": [pd.NaT, pd.Timestamp("1940-04-25")     
                                                        pd.NaT]})
 			>>> df
 			       name        toy       born
 			0    Alfred        NaN        NaT
 			1    Batman  Batmobile 1940-04-25
 			2  Catwoman   Bullwhip        NaT
 			
 			# Drop the rows where at least one element is missing.
 			>>> df.dropna()
 			     name        toy       born
 			1  Batman  Batmobile 1940-04-25
 			
 			# Drop the columns where at least one element is missing.
 			>>> df.dropna(axis='columns')
 			       name
 			0    Alfred
 			1    Batman
 			2  Catwoman
 			
 			# Drop the rows where all elements are missing.
 			>>> df.dropna(how='all')
 			       name        toy       born
 			0    Alfred        NaN        NaT
 			1    Batman  Batmobile 1940-04-25
 			2  Catwoman   Bullwhip        NaT
 			
 			# Keep only the rows with at least 2 non-NA values.
 			>>> df.dropna(thresh=2)
 			       name        toy       born
 			1    Batman  Batmobile 1940-04-25
 			2  Catwoman   Bullwhip        NaT
 			
 			# Define in which columns to look for missing values.
 			>>> df.dropna(subset=['name', 'born'])
 			       name        toy       born
 			1    Batman  Batmobile 1940-04-25
 			
 			# Keep the DataFrame with valid entries in the same variable.	
 			>>> df.dropna(inplace=True)
 			>>> df
 			     name        toy       born
 			1  Batman  Batmobile 1940-04-25

對于option 2:

可以使用dropna 或者drop函數(shù)
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

  • labels: 要?jiǎng)h除行或列的列表
  • axis: 0 行 ;1 列
	df = pd.DataFrame(np.arange(12).reshape(3,4),                 
	                  columns=['A', 'B', 'C', 'D'])
	
	>>>df
	   	   A  B   C   D
		0  0  1   2   3
		1  4  5   6   7
		2  8  9  10  11

	# 刪除列
	>>> df.drop(['B', 'C'], axis=1)
	   A   D
	0  0   3
	1  4   7
	2  8  11
	>>> df.drop(columns=['B', 'C'])
	   A   D
	0  0   3
	1  4   7
	2  8  11
	
	# 刪除行(索引)
	>>> df.drop([0, 1])
	   A  B   C   D
	2  8  9  10  11

對于option3

使用DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

  • value: scalar, dict, Series, or DataFrame
  • dict 可以指定每一行或列用什么值填充
  • method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None
  • 在列上操作
    • ffill / pad: 使用前一個(gè)值來填充缺失值
    • backfill / bfill :使用后一個(gè)值來填充缺失值
  • limit 填充的缺失值個(gè)數(shù)限制。應(yīng)該不怎么用
f = pd.DataFrame([[np.nan, 2, np.nan, 0],
                   [3, 4, np.nan, 1],
                   [np.nan, np.nan, np.nan, 5],
                   [np.nan, 3, np.nan, 4]],
                   columns=list('ABCD'))
 >>> df
     A    B   C  D
0  NaN  2.0 NaN  0
1  3.0  4.0 NaN  1
2  NaN  NaN NaN  5
3  NaN  3.0 NaN  4

# 使用0代替所有的缺失值
>>> df.fillna(0)
    A   B   C   D
0   0.0 2.0 0.0 0
1   3.0 4.0 0.0 1
2   0.0 0.0 0.0 5
3   0.0 3.0 0.0 4

# 使用后邊或前邊的值填充缺失值
>>> df.fillna(method='ffill')
    A   B   C   D
0   NaN 2.0 NaN 0
1   3.0 4.0 NaN 1
2   3.0 4.0 NaN 5
3   3.0 3.0 NaN 4

>>>df.fillna(method='bfill')
     A	B	C	D
0	3.0	2.0	NaN	0
1	3.0	4.0	NaN	1
2	NaN	3.0	NaN	5
3	NaN	3.0	NaN	4

# Replace all NaN elements in column ‘A', ‘B', ‘C', and ‘D', with 0, 1, 2, and 3 respectively.
# 每一列使用不同的缺失值
>>> values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>> df.fillna(value=values)
    A   B   C   D
0   0.0 2.0 2.0 0
1   3.0 4.0 2.0 1
2   0.0 1.0 2.0 5
3   0.0 3.0 2.0 4

#只替換第一個(gè)缺失值
 >>>df.fillna(value=values, limit=1)
    A   B   C   D
0   0.0 2.0 2.0 0
1   3.0 4.0 NaN 1
2   NaN 1.0 NaN 5
3   NaN 3.0 NaN 4

房價(jià)分析:

在此問題中,只有bedroom一列有缺失值,按照此三種方法處理代碼為:

# option 1 將含有缺失值的行去掉
housing.dropna(subset=["total_bedrooms"])  

# option 2 將"total_bedrooms"這一列從數(shù)據(jù)中去掉
housing.drop("total_bedrooms", axis=1)  

 # option 3 使用"total_bedrooms"的中值填充缺失值
median = housing["total_bedrooms"].median()
housing["total_bedrooms"].fillna(median) 

sklearn提供了處理缺失值的 Imputer類,具體的使用教程在這:http://chabaoo.cn/article/259441.htm

總結(jié)

到此這篇關(guān)于Python pandas處理缺失值(dropna、drop、fillna)的文章就介紹到這了,更多相關(guān)pandas處理缺失值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python可視化 matplotlib畫圖使用colorbar工具自定義顏色

    python可視化 matplotlib畫圖使用colorbar工具自定義顏色

    這篇文章主要介紹了python可視化 matplotlib畫圖使用colorbar工具自定義顏色,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • OpenCV凸包檢測和凸缺陷學(xué)習(xí)示例

    OpenCV凸包檢測和凸缺陷學(xué)習(xí)示例

    這篇文章主要為大家介紹了OpenCV凸包檢測和凸缺陷學(xué)習(xí)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 淺談如何重構(gòu)冗長的Python代碼

    淺談如何重構(gòu)冗長的Python代碼

    這篇文章主要介紹了淺談如何重構(gòu)冗長的Python代碼,編寫干凈的?Pythonic?代碼就是盡可能使其易于理解,但又簡潔,過長的代碼如何做到簡潔高效,需要的朋友可以參考下
    2023-04-04
  • Python實(shí)現(xiàn)仿真雙徑效應(yīng)的方法

    Python實(shí)現(xiàn)仿真雙徑效應(yīng)的方法

    雙徑模型是一種很好的近似,能夠準(zhǔn)確地反映信號(hào)的傳播特性。這篇文章主要介紹了Python實(shí)現(xiàn)仿真雙徑效應(yīng)的方法,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 不到20行實(shí)現(xiàn)Python代碼即可制作精美證件照

    不到20行實(shí)現(xiàn)Python代碼即可制作精美證件照

    這篇文章主要介紹了不到20行實(shí)現(xiàn)Python代碼即可制作精美證件照,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 詳解Python中位運(yùn)算的簡單實(shí)現(xiàn)

    詳解Python中位運(yùn)算的簡單實(shí)現(xiàn)

    位運(yùn)算就是直接對整數(shù)在內(nèi)存中對應(yīng)的二進(jìn)制位進(jìn)行操作,一般是將數(shù)字化為二進(jìn)制數(shù)后進(jìn)行操作。本文將利用Python語言實(shí)現(xiàn)位運(yùn)算,感興趣的可以了解一下
    2022-06-06
  • python中的信號(hào)通信 blinker的使用小結(jié)

    python中的信號(hào)通信 blinker的使用小結(jié)

    信號(hào)是一種通知或者說通信的方式,信號(hào)分為發(fā)送方和接收方,信號(hào)的特點(diǎn)就是發(fā)送端通知訂閱者發(fā)生了什么,今天通過本文給大家介紹python中的信號(hào)通信 blinker的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-10-10
  • Python封裝adb命令的操作詳解

    Python封裝adb命令的操作詳解

    在日常的 Android 項(xiàng)目開發(fā)中,我們通常會(huì)使用 adb 命令來獲取連接設(shè)備的內(nèi)存、屏幕、CPU等信息,這些信息的獲取,每次都在command 中輸入相關(guān)命令進(jìn)行重復(fù)的操作讓人感到厭倦和疲乏,現(xiàn)在,可以嘗試使用 python 來簡化這一部分工作,所以本文介紹了Python封裝adb命令的操作
    2024-01-01
  • win10下安裝Anaconda的教程(python環(huán)境+jupyter_notebook)

    win10下安裝Anaconda的教程(python環(huán)境+jupyter_notebook)

    Anaconda指的是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng)。這篇文章主要介紹了win10下安裝Anaconda(python環(huán)境+jupyter_notebook),需要的朋友可以參考下
    2019-10-10
  • 詳解python tkinter包獲取本地絕對路徑(以獲取圖片并展示)

    詳解python tkinter包獲取本地絕對路徑(以獲取圖片并展示)

    這篇文章主要給大家介紹了關(guān)于python tkinter包獲取本地絕對路徑(以獲取圖片并展示)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論