pandas空值處理isnull、notnull、dropna

#-*- coding: utf-8 -*-
#拉格朗日插值
import pandas as pd
from scipy.interpolate import lagrange

inputfile = '../data/missing_data.xls' #輸入數據路徑,須要使用Excel格式;
outputfile = '../tmp/missing_data_processed.xls' #輸出數據路徑,須要使用Excel格式

data = pd.read_excel(inputfile) #讀入數據

#自定義列向量插值函數
#s爲列向量,n爲被插值的位置,k爲取值先後的數據個數,暫定爲5
def ployinterp_column(s,n,k=5):

    y = s.reindex(list(range(n-k,n))+list(range(n+1,n+1+k))) #取數

    y = y[y.notnull()] #剔除空值
   #y = y.dropna()
# print(y);exit(); return lagrange(y.index,list(y))(n) #插值並返回插值結果 #逐個元素判斷是否須要插值 for i in data.columns: for j in range(len(data)): # print(data) # exit() if(data[i].isnull())[j]: #若是爲空就插值 data[i].isnull()返回true/false結果矩陣 # print(data[i].isnull());exit(); # data[i][j] = ployinterp_column(data[i],j) data.to_excel(outputfile,header=None,index=False)

 處理Series(仍是以爲叫一維數組順),dropna(),返回非空數據和索引值的series數組

處理DataFrame(二維數組),dropna()函數一樣會丟掉全部含有空元素的數據(行內有一個空值,整行去除),默認how='any',能夠指定how='all',行裏數據全爲空纔會刪除。若是相以一樣的方式刪除列上的數據,傳入axis=1函數

isnull()和notnull(),都是返回true/false結果矩陣spa

相關文章
相關標籤/搜索