pythonデータ分析の無効なデータのスクリーニング

8982 ワード

最近1つの数学のモデリングの小さいプロジェクトを受け取って、その中の1つの質問は大量のデータの中から間違いのデータと無効なデータをふるい取って、Excelを開けて見ると、いいやつ--20万余りの行があって、15列、百万以上のデータ、無効なデータの分布はまだ均一ではありませんて、古怪をいじめて、これはとても難しいです.
更にお父さんのはまだ妨害の項があって、これはもしExcelの検索で交換する功でサルの年の馬の月まで行かなければならないならば、幸いにも......私達は流暢なpythonを学んだことがあります!
次にpythonで上記の問題を解決します.くだらないことは言わないで、先にコードをつけます.
// 
import numpy as np
import pandas as pd
path = "F:/    /    /2020  C /  /  1.xlsx"
s1 = pd.read_excel(path, sheet_name=0)#  Excel     pandas DataFrame 

s1 = s1.values     #        

s1 = pd.DataFrame(s1)   #    dataframe  

for each in range(0,16):
    s1 = s1[(s1.iloc[:, each] != 'NULL')]  

print(s1)

l = []
list = [9,10]
for c in range(len(list)):  #            

    a = s1.iloc[:, list[c]].std()
    l.append(a)
    print(a, '
'
) p = [] for c in range(len(list)): # a = s1.iloc[:, list[c]].mean() p.append(a) print(a,'
'
) for c in range(len(list)): themin = p[c] - l[c] # , , themax = p[c] + l[c] print(themin, ' ', themax) s1 = s1[(s1.iloc[:, list[c] ] >= themin) & (s1.iloc[:, list[c] ] <= themax)] # print(s1) print('
'
, s1.shape[0], '
'
) path = "F:/ /" # s1.to_excel(path+"sheet1.xlsx")

まず適切な経路でExcelを読み取り、dataframe(大物のdataframe詳細)形式に変換し、s 1を用いる.ilocは指定行、指定列データを抽出します.(ilocに興味のある方はこれをご覧ください)
//          NULL  
for each in range(0,16):
    s1 = s1[(s1.iloc[:, each] != 'NULL')]  

分析データから,9,10列では区分度が高く,この2列を選択して比較できることが分かった.
比較は平均加減算分散区間を用い,区間の中で良いデータと判断し,最後に保存する.
コードリファレンス
興味のある学生は私に関連するデータを私信で探してもいいです.