1. 程式人生 > >python之資料清洗指令碼

python之資料清洗指令碼

#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'])#花式索引