1. 程式人生 > 其它 >python 將資料集劃分為完整資料集和缺失資料集

python 將資料集劃分為完整資料集和缺失資料集

技術標籤:Pythonpython資料分析

首先需要用的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)