日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Pandas的学习(5.pandas中处理丢失数据和空值数据以及填充空值数据)

發(fā)布時(shí)間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas的学习(5.pandas中处理丢失数据和空值数据以及填充空值数据) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

處理丟失數(shù)據(jù)

? ?有兩種丟失的數(shù)據(jù):

? ? ? ?--? None

? ? ? ?--? np.nan(NaN)

1.None

? ? ? ? ? None是Python自帶的,其類型為python object。因此,None不能參與到任何計(jì)算中

? ? ?object類型的運(yùn)算要比int類型的運(yùn)算慢得多

?2.np.nan(NaN)

? ? ? ? ? ?np.nan是浮點(diǎn)類型,能參與到計(jì)算中。但計(jì)算的結(jié)果總是NaN

? ? ? ? 但可以使用np.nan() 函數(shù)來計(jì)算nan,此時(shí)視nan為?3.pandas中的None與NaN? (1) pandas中None與np.nan都視作np.nan

? ?(1) 判斷函數(shù):

df.isnull() df.isnull.any() df.isnull.all() df.notnull() df.notnull.any() df.notnull.all() '''具體的代碼實(shí)例以及功能如下:''' from pandas import DataFrame, Series import numpy as npdf = DataFrame({"age": [20, 21, 19, 22, 23], 'salary': [10000, 11000, 9900, 8500, 15000]},index=['張三', '李四', '小趙', '小王', '小馮'], columns=['age', 'salary', 'work']) # 插入數(shù)據(jù) df.work['李四':'小王'] = 'python' print(df) """age salary work 張三 20 10000 NaN 李四 21 11000 python 小趙 19 9900 python 小王 22 8500 python 小馮 23 15000 NaN """'''1.調(diào)用isnull()方法,判斷是否為空''' print(df.isnull()) """age salary work 張三 False False True 李四 False False False 小趙 False False False 小王 False False False 小馮 False False True """'''2. isnull().any() 只有數(shù)據(jù)有一個(gè)為空,即為Trueany(axis=0):只要數(shù)據(jù)有一個(gè)為True就為這“列”就為Trueany(axis=1):只要數(shù)據(jù)有一個(gè)為True就為這“行”就為True''' s1 = df.isnull().any(axis=1) '''(獲取數(shù)據(jù)為空的數(shù)據(jù))把獲得的Series在使用DataFrame取值''' print(df[s1]) """age salary work 張三 20 10000 NaN 小馮 23 15000 NaN """ '''3.isnull().all() 數(shù)據(jù)全部為空時(shí),才為True,axis同any()''' print(df.isnull().all(axis=1)) """ 張三 False 李四 False 小趙 False 小王 False 小馮 False dtype: bool """'''4.notnull() 判斷數(shù)據(jù)是否不為空''' print(df.notnull()) """age salary work 張三 True True False 李四 True True True 小趙 True True True 小王 True True True 小馮 True True False """ ''' 5notnull().any() 只有數(shù)據(jù)有一個(gè)不為空,即為Trueany(axis=0):只要數(shù)據(jù)有一個(gè)不為True就為這“列”就為Trueany(axis=1):只要數(shù)據(jù)有一個(gè)不為True就為這“行”就為True''' print(df.notnull().any(axis=1)) """ 張三 True 李四 True 小趙 True 小王 True 小馮 True dtype: bool """'''6.notnull().all() 數(shù)據(jù)全部不為空時(shí),才為True,axis同any()''' s2 = df.notnull().all(axis=1) print(s2) """ 張三 False 李四 True 小趙 True 小王 True 小馮 False dtype: bool """ '''取出沒有一個(gè)空值的數(shù)據(jù)''' print(df[s2]) """age salary work 李四 21 11000 python 小趙 19 9900 python 小王 22 8500 python """

(2) 過濾函數(shù)

? ? ·? dropna()? ? ? ? ? ? 可以選擇過濾的是行還是列(默認(rèn)為行)? , 也可以選擇過濾的方式? 參數(shù) :how='all'

'''dropna(),中的參數(shù)axis默認(rèn)為0,即為行''' '''一行數(shù)據(jù)只要有一個(gè)為空就進(jìn)行刪除,如果加上參數(shù)how='all'代表一行都為空時(shí)才刪除''' print(df.dropna()) """age salary work 李四 21 11000 python 小趙 19 9900 python 小王 22 8500 python """ '''一列數(shù)據(jù)只要有一個(gè)為空就進(jìn)行刪除,參數(shù)how='all'代表一列都為空時(shí)才刪除''' print(df.dropna(axis=1)) """age salary 張三 20 10000 李四 21 11000 小趙 19 9900 小王 22 8500 小馮 23 15000 """

(3) 填充函數(shù) Series/DataFrame

? ? --? ?fillna()? ? ? 參數(shù)value=''? 即為要填充的值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?method:對(duì)應(yīng)的值 ?'bfill'(選擇后面的填充)或者'ffill(選擇前面的填充)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?inplace:True 是否選擇在原來的基礎(chǔ)上修改,加上該參數(shù)沒有返回值

'''fillna() 填充所有的空值''' print(df.fillna(value="填充值")) """age salary work 張三 20 10000 填充值 李四 21 11000 python 小趙 19 9900 python 小王 22 8500 python 小馮 23 15000 填充值 """ '''可以選擇向前填充還是向后填充參數(shù)method:對(duì)應(yīng)的值 'bfill'(選擇后面的填充)或者'ffill(選擇前面的填充)inplace:True 是否選擇在原來的基礎(chǔ)上修改,沒有返回值對(duì)于DataFrame來說,選擇填充的軸axis.-- axis=0 index/行-- axis=1 columns/列''' print(df.fillna(method='bfill')) """ # 因?yàn)樽詈笠粋€(gè)后面沒有值,所以最后一個(gè)填充還是為NaNage salary work 張三 20 10000 python 李四 21 11000 python 小趙 19 9900 python 小王 22 8500 python 小馮 23 15000 NaN """ print(df.fillna(method='ffill')) """ # 因?yàn)榈谝粋€(gè)的前沒有值,所以第一個(gè)填充還是NaNage salary work 張三 20 10000 NaN 李四 21 11000 python 小趙 19 9900 python 小王 22 8500 python 小馮 23 15000 python """

?

總結(jié)

以上是生活随笔為你收集整理的Pandas的学习(5.pandas中处理丢失数据和空值数据以及填充空值数据)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。