python之資料清洗指令碼
阿新 • • 發佈:2018-11-19
#coding=utf-8 import numpy as np import pandas as pd na_list=['NO CLUE','N/A','0']#na包含的型別 data=pd.read_csv('311-service-requests.csv',na_values=na_list,dtype={'Incident Zip':str})#列值資料型別設定為字串 #print(data['Incident Zip'].head())#--檢視前幾行,不改變源資料 #data['Incident Zip'].unique()#--檢視唯一值,不改變源資料 #data['Incident Zip'][data['Incident Zip'].str.len()>5]#檢視元素長度大於5的元素,不改變源資料 data['Incident Zip']=data['Incident Zip'].str.slice(0,5)#源資料重新賦值,改變源資料 #print(data['Incident Zip']) data.loc[data['Incident Zip']=='00000','Incident Zip']=np.nan#值為0的元素設為nan,loc改變源資料 unique_zip=data['Incident Zip'].fillna(False).unique().astype('str')#fillna(Flase) unique_zip.sort()#排序,改變源資料 #print(unique_zip) zips=data['Incident Zip'] is_close=zips.str.startswith('0')|zips.str.startswith('1')#取字元傳以1或0開頭的元素 is_far=~(is_close)&zips.notna()#~表示反條件,即不以0或1開頭且不為空的元素 print(data[is_far]['Incident Zip'])#花式索引