python 將資料集劃分為完整資料集和缺失資料集
阿新 • • 發佈:2020-12-09
首先需要用的python包:
import pandas as pd
然後,正式開始處理資料。
1.定義一個數組
dataset=[[1,2,3,4,5],[1,2,3,None,5],[1,None,3,4,5],[1,2,3,4,5]]
2.將list型別轉為pandas的DataFrame型別
df=pd.DataFrame(dataset)
print(df)
3.找到具有缺失值的資料
dataset_missing=df[df.isnull().values==True]
print(dataset_missing)
4.如果需要找到具有缺失值的列,需要做兩步操作
#1判斷哪些列存在缺失值(返回的是Series型別的資料)
coloums_missing_status=df.isnull().any()
#2找到缺失列的列,用to_list()方法返回list
coloums_missing=coloums_missing_status.index[coloums_missing_status==True].to_list()
5.找到沒有缺失值的資料,也需要兩步
#1根據前面找到的缺失資料,獲得缺失值的列名(返回的list) missing_index=dataset_missing.index.to_list() print(missing_index)
#2在原始資料中去除有缺失值的行
dataset_complete=df.loc[~df.index.isin(missing_index)]
print(dataset_complete)
最後附上所有程式碼
import pandas as pd """ input: Full dataset output: Missing dataset and Complete dataset """ def split_dataset(dataset): #將list型別轉為pandas的DataFrame型別 df=pd.DataFrame(dataset) print(df) #找到具有缺失值的資料 dataset_missing=df[df.isnull().values==True] print(dataset_missing) #如果需要找到具有缺失值的列,需要做兩步操作 #1判斷哪些列存在缺失值(返回的是Series型別的資料) colums_missing_status=df.isnull().any() print(colums_missing_status) #2找到缺失列的列,用to_list()方法返回list colums_missing=colums_missing_status.index[colums_missing_status==True].to_list() print(colums_missing) coloums_missing=coloums_missing_status.index[coloums_missing_status==True].to_list() print(coloums_missing) #找到沒有缺失值的資料,也需要兩步 #1根據前面找到的缺失資料,獲得缺失值的列名(返回的list) missing_index=dataset_missing.index.to_list() print(missing_index) #2在原始資料中去除有缺失值的行 dataset_complete=df.loc[~df.index.isin(missing_index)] print(dataset_complete) return dataset_missing,dataset_complete if __name__=='__main__': #定義一個數組 dataset=[[1,2,3,4,5],[1,2,3,None,5],[1,None,3,4,5],[1,2,3,4,5]] dataset_missing,dataset_complete=split_dataset(dataset)