人に聞く前には、データクリーニングに費やさデータアナリスト時間の良い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、インプレース=真)