1.摘要
dropna()方法,能夠找到dataframe型別資料的空值(缺失值),將空值所在的行/列刪除後,將新的dataframe作為返回值返回。
2.函式詳解
函式形式:dropna(axis=0, how='any', thresh=none, subset=none, inplace=false)
引數:axis:軸。0或'index',表示按行刪除;1或'columns',表示按列刪除。
how:篩選方式。『any',表示該行/列只要有乙個以上的空值,就刪除該行/列;『all',uimotk表示該行/列全部都為空值,就刪除該行/列。
thresh:非空元素最低數量。int型,預設為none。如果該行/列中,非空元素數量小於這個值,就刪除該行/列。
subset:子集。列表,元素為行或者列的索引。如果axis=0或者『index',subset中元素為列的索引;如果axis=1或者『column',subset中元素為行的索引。由subset限制的子區域,是判斷是否刪除該行/列的條件判斷區域。
inplace:是否原地替換。布林值,預設為false。如果為true,則在原dataframe上進行操作,返回值為none。
3.示例
建立dataframe資料:
import numpy as np
import pandas as pd
a = np.ones((11,10))
for i in range(len(a)):
a[i,:i] =&nb程式設計客棧sp;np.nan
d = pd.dataframe(data=a)
print(d)
按行刪除:存在空值,即刪除該行
# 按行刪除:存在空值,即刪除該行
print(d.dropna(axis=0, how='any'))
按行刪除:所有資料都為空值,即刪除該行
# 按行刪除:所有資料都為空值,即刪除該行
print(d.dropna(axis=0, how='all'))
按列刪除:該列非空元素小於5個的,即刪除該列
# 按列刪除:該列非空元素小於5個的,即刪除該列
print(d.dropna(axis='columns', thresh=5))
設定子集:刪除第0、5、6、7列都為空的行
# 設定子集:刪除第0、5、6、7列都為空的行
print(d.dropna(axis='index', how='all', subset=[0,5,6,7]))
設定子集:刪除第5、6、7行存在空值的列
# 設定子集:刪除第5、6、7行存在空值的列
print(d.dropna(axis=1, how='any', subset=[5,6,7]))
www.cppcns.com原地修改
# 原地修改
print(d.dropna(axis=0, how='any', inplace=true))
print("******************************")
print(d)
例項擴充套件:
**實現
import pandas as pd
data = pd.read_excel('test.xlsx',sheet_name='sheet1')
datanota = data[data['銷售人員'].notna()]
print(datanota)
輸出結果
d:\python\anaconda\python.exe d:/python/test/easdeal/test.py
城市 銷售金額 銷售人員
0 北京 10000 張麗麗
1 上海 50000 瀟瀟
2 深圳 60000www.cppcns.com 笨笨笨
3 成都 40000 達達
process finished with exit code 0
DataFrame中去除指定列為空的行
一次,筆者在處理資料時想去除dataframe中指定列的值為空的這一行,採用了如下做法,但是怎麼都沒有成功 encoding utf 8 import pandas as pd import math import numpy as np data pd.read csv mydata.csv pr...
Python 如何刪除檔案中的空白行?
defdelblankline infile,outfile infopen open infile,r outfopen open outfile,w lines infopen.readlines for line in lines ifline.split outfopen.writeline...
如何刪除表的重複行
如何刪除sql server表中的重複行 若在你的ms sql server資料庫表中,有重複的多行,你可能想去刪除這些重複的記錄。t sql row number 函式能幫助sql開發者去解決這個sql的問題。1.建立tuser表 create table tuser name varchar 5...