python?pandas數(shù)據(jù)處理之刪除特定行與列
dropna() 方法過濾任何含有缺失值的行
pandas.DataFrame
里,如果一行數(shù)據(jù)有任意值為空,則過濾掉整行,這時候使用dropna()
方法是合適的。下面的案例,任意列只要有一個為空數(shù)據(jù),則整行都干掉。但是我們常常遇到的情況,是根據(jù)一個指標(biāo)(一列)數(shù)據(jù)的情況,去過濾行數(shù)據(jù),類似Excel里面的過濾漏斗,怎么辦?
>>> import pandas as pd >>> data = pd.DataFrame([[1.,6.5,3.],[1.],[],[6.5,3.]],index=list('abcd'),columns=list('def')) >>> data d e f a 1.0 6.5 3.0 b 1.0 NaN NaN c NaN NaN NaN d 6.5 3.0 NaN >>> data.dropna() #任意列只要有一個為空數(shù)據(jù),則整行都干掉 d e f a 1.0 6.5 3.0
方法一:dropna() 其他參數(shù)解析
原文鏈接,我們引入了dropna()
方法的其他參數(shù)。
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個非缺失值,否則刪除。比如 axis=0,thresh=10:標(biāo)識如果該行中非缺失值的數(shù)量小于10,將刪除改行
- subset: list,在哪些列中查看是否有缺失值
- inplace: 是否在原數(shù)據(jù)上操作。如果為真,返回None,否則返回新的copy,去掉了缺失值
>>> data.dropna(axis=0,subset=['e']) #axis=0,刪除行,在subset的列中進(jìn)行查看 d e f a 1.0 6.5 3.0 d 6.5 3.0 NaN
方法二:替換并刪除,Python pandas 如果某列值為空,過濾刪除所在行數(shù)據(jù)
如上面的data數(shù)據(jù),如果希望“e”列數(shù)值為空NaN時,刪除對應(yīng)行也就是“b、c”行數(shù)據(jù),保留其他行,用dropna()
似乎比較麻煩。 這個時候的思路是:
fillna()
給空值填充一個數(shù)值(如999999)index.tolist()
找出值為填充值所在行的索引drop
根據(jù)索引干掉對應(yīng)的行
>>> data['e']=data['e'].fillna(999999) >>> find_index=data[(data.e==999999)].index.tolist() >>> find_index ['b', 'c'] >>> data.drop(find_index) d e f a 1.0 6.5 3.0 d 6.5 3.0 NaN
總結(jié)
到此這篇關(guān)于python pandas數(shù)據(jù)處理之刪除特定行與列的文章就介紹到這了,更多相關(guān)python pandas刪除特定行列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pyinstaller?pathex參數(shù)引發(fā)打包no?module?name異常
這篇文章主要為大家介紹了一個關(guān)于pyinstaller的?pathex?參數(shù)所引發(fā)的打包執(zhí)行報no?module?name的異常錯誤解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05TensorFlow實現(xiàn)簡單卷積神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細(xì)介紹了TensorFlow實現(xiàn)簡單卷積神經(jīng)網(wǎng)絡(luò),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05python使用socket向客戶端發(fā)送數(shù)據(jù)的方法
這篇文章主要介紹了python使用socket向客戶端發(fā)送數(shù)據(jù)的方法,涉及Python使用socket實現(xiàn)數(shù)據(jù)通信的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04Python基于LightGBM進(jìn)行時間序列預(yù)測
LightGBM是擴(kuò)展機(jī)器學(xué)習(xí)系統(tǒng)。是一款基于GBDT(梯度提升決策樹)算法的分布梯度提升框架。其設(shè)計思路主要集中在減少數(shù)據(jù)對內(nèi)存與計算性能的使用上,以及減少多機(jī)器并行計算時的通訊代價。本文將通過LightGBM進(jìn)行時間序列預(yù)測,感興趣的可以了解一下2022-03-03Windows系統(tǒng)下Chromedriver.exe安裝及配置詳細(xì)教程
ChromeDriver.exe是一款實用的chrome瀏覽器驅(qū)動工具,能夠用于自動化測試、網(wǎng)絡(luò)爬蟲和操作瀏覽器,其主要作用是模擬瀏覽器操作,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下Chromedriver.exe安裝及配置的相關(guān)資料,需要的朋友可以參考下2023-11-11