[ML]データクレンジング

人に聞く前には、データクリーニングに費やさデータアナリスト時間の良い80%、高品質なデータセットは、その後のデータ分析とアプリケーションをサポートすることを言います。

それは良いデータ品質が、私はそれには2つの側面限り、何を考えています:

1.完全:たとえば、小さい値の値の欠如、値が完了していない、NANのような

2.法的:データ、コンテンツのタイプは、サイズは機能と一致しています。例えば、不可能小数点値の年齢の特徴は、それが「ジョン・ドウ。」することはできません

 

どのようにデータクレンジング:

変更でいっぱい:

この工程は、典型的には欠損値を処理するために使用されます。これは、かなり恥ずかしい問題で欠損値や存在がまばらなデータを作成し、終了値も精度に影響を及ぼします。例えば、我々は現在の列の平均値を使用するか、または現在の列が最も頻繁にデータ処理に使用される表示されますが、高齢者より全体のサンプル、およびこの行方不明者は赤ちゃんであれば、その後、プロセスは現実から逸脱する使用しますA。

年齢ヌル平均値で満たさ 
DF [ ' 年齢' ] .fillna(DF [ ' 年齢' ] .mean()、インプレース= TRUE)

削除:

データの行のみNANは、NANは、大多数のための貧弱なデータ品質を占めている場合、我々は、この行を削除することができます。

ものがある。なお、パンダは()データが()、それに読み込まれ、削除空白行を処理した後、我々はdropnaを使用する必要があるので、空白行を無視するオプションパラメータは、ではありませんread_csvです。

空行削除 
df.dropna(=どのようにすべて、インプレース=真)

あるいは、そのような人として遭遇重複データは、あなたが余分なデータを削除することができ、何回も記録されています。

重複排除行 
df.drop_duplicates([ ' FIRST_NAME '' ' ]、インプレース= TRUE)

 

交換してください:

データが正当1、ユニット空腹よそうキロ、いくつかのポンドの数値重みがない場合たとえば、それは統一されたユニットを持っているでしょう。

単位データ列ポンドデータの取得重量 
rows_with_lbs DF = [ ' 体重' ] .str.contains(' ポンド' ).fillna(偽)
 #1 KGSに変換ポンド、2.2lbs = 1kgs 
 I、lbs_row におけるDF 【rows_with_lbs] .iterrows():
    3文字目までのカウントダウン、すなわち除去ポンド前先頭から取ら。
    INT =量(フロート(lbs_row [ ' 体重' ] [ - 3。])/ 2.2 
    df.at [I、' ウェイト' ] = ' {} KGS ' .format(重量) 

たとえば、削除非ASCII文字。

で削除非ASCII文字 
DF [ ' 名前' ] .replace(R&LT { ' [^ \ x00- \ x7F] + ''' }、REGEX = Trueを、インプレース= TRUE)

スプリットの列:

この構成は、典型的には、分散、平均、等の新しい機能のために使用される、または1つのパラメータとは別の多くを持っています。

たとえば、名前は姓と名に分けています。

セグメンテーション名、削除ソースデータ列 
DF [[ ' FIRST_NAME '' LAST_NAME ' ] = DF [ ' 名前' ] .str.split(展開= TRUE)
df.drop(' 名前'、軸= 1、インプレース=真)

 

おすすめ

転載: www.cnblogs.com/guangluwutu/p/12363659.html