App下載

Pandas怎么過(guò)濾缺失數(shù)據(jù)?pd.dropna()函數(shù)的用法說(shuō)明!

一級(jí)內(nèi)心戲表演藝術(shù)家 2021-08-11 14:47:57 瀏覽數(shù) (4204)
反饋

大多數(shù)時(shí)候我們獲得的數(shù)據(jù)并不都是完整的,缺失的數(shù)據(jù)要先進(jìn)行過(guò)濾處理才能進(jìn)一步操作。那么pandas怎么過(guò)濾缺失數(shù)據(jù)呢?實(shí)際上是用到了pandas的dropna()函數(shù),接下來(lái)這篇文章就是pd.dropna()函數(shù)的用法說(shuō)明。

看代碼吧~

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
Remove missing values.

pd.dropna()函數(shù)(官方文檔)用于過(guò)濾數(shù)據(jù)中的缺失數(shù)據(jù).

缺失數(shù)據(jù)在pandas中用NaN標(biāo)記.

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5, 3), index = list('abcde'), columns = ['one', 'two', 'three'])        # 隨機(jī)產(chǎn)生5行3列的數(shù)據(jù)    
df.ix[1, :-1] = np.nan        # 將指定數(shù)據(jù)定義為缺失
df.ix[1:-1, 2] = np.nan
print(df)

缺失數(shù)據(jù)標(biāo)記

df.dropna()   #刪除所有帶缺失數(shù)據(jù)的行

刪除帶缺失數(shù)據(jù)標(biāo)記的行

parameters 詳解
axis default 0指行,1為列
how {‘a(chǎn)ny', ‘a(chǎn)ll'}, default ‘a(chǎn)ny'指帶缺失值的所有行;'all'指清除全是缺失值的行
thresh int,保留含有int個(gè)非空值的行
subset 對(duì)特定的列進(jìn)行缺失值刪除處理
inplace 這個(gè)很常見(jiàn),True表示就地更改

補(bǔ)充:Python-pandas的dropna()方法-丟棄含空值的行、列

0.摘要

dropna()方法,能夠找到DataFrame類(lèi)型數(shù)據(jù)的空值(缺失值),將空值所在的行/列刪除后,將新的DataFrame作為返回值返回。

1.函數(shù)詳解

函數(shù)形式:dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

參數(shù):

axis:軸。0或'index',表示按行刪除;1或'columns',表示按列刪除。

how:篩選方式?!產(chǎn)ny',表示該行/列只要有一個(gè)以上的空值,就刪除該行/列;‘a(chǎn)ll',表示該行/列全部都為空值,就刪除該行/列。

thresh:非空元素最低數(shù)量。int型,默認(rèn)為None。如果該行/列中,非空元素?cái)?shù)量小于這個(gè)值,就刪除該行/列。

subset:子集。列表,元素為行或者列的索引。如果axis=0或者‘index',subset中元素為列的索引;如果axis=1或者‘column',subset中元素為行的索引。由subset限制的子區(qū)域,是判斷是否刪除該行/列的條件判斷區(qū)域。

inplace:是否原地替換。布爾值,默認(rèn)為False。如果為T(mén)rue,則在原DataFrame上進(jìn)行操作,返回值為None。

2.示例

創(chuàng)建DataFrame數(shù)據(jù):

import numpy as np
import pandas as pd
 
a = np.ones((11,10))
for i in range(len(a)):
    a[i,:i] = np.nan
 
d = pd.DataFrame(data=a)
print(d)

示例

按行刪除:存在空值,即刪除該行

# 按行刪除:存在空值,即刪除該行
print(d.dropna(axis=0, how='any'))

運(yùn)行結(jié)果

按行刪除:所有數(shù)據(jù)都為空值,即刪除該行

#  按行刪除:所有數(shù)據(jù)都為空值,即刪除該行
print(d.dropna(axis=0, how='all'))

示例

按列刪除:該列非空元素小于5個(gè)的,即刪除該列

# 按列刪除:該列非空元素小于5個(gè)的,即刪除該列
print(d.dropna(axis='columns', thresh=5))

運(yùn)行結(jié)果

設(shè)置子集:刪除第0、5、6、7列都為空的行

# 設(shè)置子集:刪除第0、5、6、7列都為空的行
print(d.dropna(axis='index', how='all', subset=[0,5,6,7]))

示例

設(shè)置子集:刪除第5、6、7行存在空值的列

# 設(shè)置子集:刪除第5、6、7行存在空值的列
print(d.dropna(axis=1, how='any', subset=[5,6,7]))

運(yùn)行結(jié)果

原地修改

# 原地修改
print(d.dropna(axis=0, how='any', inplace=True))
print("==============================")
print(d)

原地修改

以上就是Pandas怎么過(guò)濾缺失數(shù)據(jù),的全部?jī)?nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持W3Cschool。


0 人點(diǎn)贊