Task 2データ洗浄及び特徴処理_学習ノート
32846 ワード
Task 2データ洗浄及び特徴処理一、基礎知識 1、欠落値の表示および処理 1.2欠落値の表示 1.3欠落値の処理 1.3.1削除(dropna) 1.3.2フィラー
2、繰り返し値の表示および処理 2.1繰り返し値の表示 2.2繰返し値の除去 2.3特徴観察と処理 2.3.1分箱(離散化)処理 2.3.2テキスト変数変換
二、練習データの処理 1、処理ステップ
一、基礎知識
1、欠落した値の表示と処理
1.2欠落した値の表示
1.3欠落値の処理
Null値:pandasのNull値は、「欠落値:pandas」です.DataFrameの場合、欠落値はnanまたはnaT(欠落時間)として表すことができます.Seriesの場合はnoneまたはnanです.
None:Pythonが持参するデータ型であり、objectオブジェクトとみなされ、計算には参加できないnp.nan:floatタイプは計算に関与できるが、結果は常にnanであるため、空き値を検索するにはnpを用いる.nanはNoneよりいいです.
1.3.1削除(dropna)
関数の役割:空の値を含む行または列の関数の具体的なパラメータを削除します:axis次元、axis=0はindex行、axis=1はcolumns列、デフォルト0 how「all」は、この行または列の要素がすべて欠落していること(nan)を示して、この行または列を削除します.「any」は、この行または列に要素が欠落している限り、この行または列thresh axisの少なくともsにはthreshの欠落していない値があります.そうしないと削除されます.subsetは、一部のカラムのサブセットで欠落した値が表示されたカラムの削除を選択し、サブセットに欠落した値を含むカラムまたはローが削除されない(axisによって行または列が決定される)inplaceブラシは、欠落した値の新しいデータがコピーとして保存されるか、元のデータに直接変更されるかを選択します.デフォルトはFalseです.つまり、新しいオブジェクトを作成して変更します.元のオブジェクトは変更されません.深いコピーと浅いコピーと似ています.注意:dropメソッドのaxis値は他のメソッドとは逆にaxis=0が行、=1が列を表します.
1.3.2充填(fillna)
関数の役割:欠落値を塗りつぶす主なパラメータ:valueが欠落値axisをどの値で塗りつぶす必要があるか、行からmethodが欠落値を塗りつぶす方法を決定します.limitは充填の個数を決定し、limit=2の場合、欠落した値は2つしか充填されません.
使用:method(1)ffill:欠落値の前の値に置き換え、axis=1の場合、横方向の前の値に置き換え、axis=0の場合、上の値に置き換えます.欠落した値を欠落した値の前の値に横方向に置き換える「/「欠落した値の上の値を縦方向に置き換える」という方法で、欠落した値の前の値を欠落した値の前の値で埋めます.(行/列で指定できます)(2)backfill/bfill:欠落した値の後ろの値が前の欠落した値の代わりになります(具体的な使い方は前と同じです).. 注意~この方法ではvalueと同時に現れない.
https://zhuanlan.zhihu.com/p/109366433 https://zhuanlan.zhihu.com/p/109434512
2、繰り返し値の表示と処理
2.1繰り返し値の表示
パラメータ:subset:列ラベルまたはラベルシーケンス、オプションで重複項目を識別するために使用されるいくつかの列のみを考慮します.デフォルトでは、すべての列keep:{'first','last',False}、デフォルト'first'first:タグ重複を使用します.Trueは最初の出現を除きます.Last:タグが重複し、Trueは最後の出現を除く.False:すべての重複をTrueとしてマークします.
2.2重複値の除去
パラメータ:subset:カラムを指定します.デフォルトでは、すべてのカラムkeep:{'first','last',False},デフォルト'first'first:重複項目を削除して、最初に発生したものを保持します.Last:重複項目を削除して最後に表示されたものを保持します.false:すべての重複項目を削除します.inplace:ブール値、デフォルトはFalse
2.3特徴観察と処理
特徴を観察すると、特徴を大きく2つに分けることができます:数値型特徴:Survived,Pclass,Age,SibSp,Parch,Fare,そのうちSurvived,Pclassは離散型数値特徴,Age,SibSp,Parch,Fareは連続型数値特徴テキスト型特徴:Name,Sex,Cabin,Embarked,Ticket,そのうちSex,Cabin,Embarked,Embarked,Ticketはカテゴリ型テキスト特徴であり,数値型特徴は一般的にモデルの訓練に直接用いることができるが,モデルの安定性やロバスト性のために連続変数を離散化する場合がある.テキスト型フィーチャーは、モデリング分析に使用するために数値型フィーチャーに変換する必要があることが多い.
2.3.1分箱(離散化)処理
分箱処理:データを分類する
2.3.2テキスト変数変換
表示
Unique()は、カラムのすべての一意値(フィーチャーのすべての一意値)nunique()を配列形式で返す一意値の個数です.
テキスト変換
----------------------------------------------------------------------------------------
sklearn処理分類特徴preprocessing.LabelEncoder:ラベル専用で、分類を分類数値に変換できます
カテゴリテキストをone-hot符号化に変換
二、練習データの処理
1、処理手順
1.欠落値の処理は、欠落値(例えば、0または平均数、前の桁数など)の代わりに論理的な数で行う.重複値3をクリアする.年齢分箱処理(5段に分ける)4.テキスト変数をデジタル変数またはone-hotで符号化するなど、テキスト変数を変換する.フィールドからフィーチャー値6を抽出する.データの前処理完了、データの保存
https://www.cnblogs.com/lavender1221/p/12724186.html# https://zhuanlan.zhihu.com/p/59252361
一、基礎知識
1、欠落した値の表示と処理
1.2欠落した値の表示
##
# :isnull() ##isnull() notnull()
rows_null=dep.isnull().sum(axis=1)#
cols_null=dep.isnull().sum(axis=0)# ( axis=0, )
all_null=dep.isnull().sum().sum() #
sp_null=dep[[' ',' ']].isnull().sum()#
# :count() #
rows_not_null=dep.count(axis=1)#
cols_not_null=dep.count(axis=0)#
sp_not_null=dep[[' ',' ']].count() #
cols_num=dep.count().count() # , dep.shape[1]
rows_num=dep.count(axis=1).count() # , dep.shape[0]
# :df.info() ,
dep.info()
##
dep[[' ',' ',' ']].head(10)
1.3欠落値の処理
Null値:pandasのNull値は、「欠落値:pandas」です.DataFrameの場合、欠落値はnanまたはnaT(欠落時間)として表すことができます.Seriesの場合はnoneまたはnanです.
None:Pythonが持参するデータ型であり、objectオブジェクトとみなされ、計算には参加できないnp.nan:floatタイプは計算に関与できるが、結果は常にnanであるため、空き値を検索するにはnpを用いる.nanはNoneよりいいです.
1.3.1削除(dropna)
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
関数の役割:空の値を含む行または列の関数の具体的なパラメータを削除します:axis次元、axis=0はindex行、axis=1はcolumns列、デフォルト0 how「all」は、この行または列の要素がすべて欠落していること(nan)を示して、この行または列を削除します.「any」は、この行または列に要素が欠落している限り、この行または列thresh axisの少なくともsにはthreshの欠落していない値があります.そうしないと削除されます.subsetは、一部のカラムのサブセットで欠落した値が表示されたカラムの削除を選択し、サブセットに欠落した値を含むカラムまたはローが削除されない(axisによって行または列が決定される)inplaceブラシは、欠落した値の新しいデータがコピーとして保存されるか、元のデータに直接変更されるかを選択します.デフォルトはFalseです.つまり、新しいオブジェクトを作成して変更します.元のオブジェクトは変更されません.深いコピーと浅いコピーと似ています.注意:dropメソッドのaxis値は他のメソッドとは逆にaxis=0が行、=1が列を表します.
1.3.2充填(fillna)
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
関数の役割:欠落値を塗りつぶす主なパラメータ:valueが欠落値axisをどの値で塗りつぶす必要があるか、行からmethodが欠落値を塗りつぶす方法を決定します.limitは充填の個数を決定し、limit=2の場合、欠落した値は2つしか充填されません.
# :dropna()
#
a=dep.dropna(axis=1)
#
b=dep.dropna(axis=1,how='any')
# 12
c=dep.dropna(thresh=12)
#
d=dep.dropna(subset=[' ',' ',' '])
使用:method(1)ffill:欠落値の前の値に置き換え、axis=1の場合、横方向の前の値に置き換え、axis=0の場合、上の値に置き換えます.欠落した値を欠落した値の前の値に横方向に置き換える「/「欠落した値の上の値を縦方向に置き換える」という方法で、欠落した値の前の値を欠落した値の前の値で埋めます.(行/列で指定できます)(2)backfill/bfill:欠落した値の後ろの値が前の欠落した値の代わりになります(具体的な使い方は前と同じです).. 注意~この方法ではvalueと同時に現れない.
# :fillna()
# 0
e=dep.fillna(0)
# ,value ;limit=1 1 ( , )
values={
' ':0,' ':'a'}
f=dep.fillna(value=values,limit=1)
# axis=0, ; axis=1,
g=dep.fillna(axis=0,method='ffill')
# mean() :
## : ( )
h=dep.fillna(dep.mean()[' '])
## : ( )
i=dep.fillna(dep.mean())
h
https://zhuanlan.zhihu.com/p/109366433 https://zhuanlan.zhihu.com/p/109434512
2、繰り返し値の表示と処理
2.1繰り返し値の表示
DataFrame.duplicated(subset = None,keep =‘first' ) boolean Series
パラメータ:subset:列ラベルまたはラベルシーケンス、オプションで重複項目を識別するために使用されるいくつかの列のみを考慮します.デフォルトでは、すべての列keep:{'first','last',False}、デフォルト'first'first:タグ重複を使用します.Trueは最初の出現を除きます.Last:タグが重複し、Trueは最後の出現を除く.False:すべての重複をTrueとしてマークします.
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv')
#duplicated()
a=dep[dep.duplicated()]
2.2重複値の除去
DataFrame.drop_duplicates(subset = None,keep ='first',inplace = False )
パラメータ:subset:カラムを指定します.デフォルトでは、すべてのカラムkeep:{'first','last',False},デフォルト'first'first:重複項目を削除して、最初に発生したものを保持します.Last:重複項目を削除して最後に表示されたものを保持します.false:すべての重複項目を削除します.inplace:ブール値、デフォルトはFalse
# drop_dujplicates()
b=dep.drop_duplicates([' '])#
b
2.3特徴観察と処理
特徴を観察すると、特徴を大きく2つに分けることができます:数値型特徴:Survived,Pclass,Age,SibSp,Parch,Fare,そのうちSurvived,Pclassは離散型数値特徴,Age,SibSp,Parch,Fareは連続型数値特徴テキスト型特徴:Name,Sex,Cabin,Embarked,Ticket,そのうちSex,Cabin,Embarked,Embarked,Ticketはカテゴリ型テキスト特徴であり,数値型特徴は一般的にモデルの訓練に直接用いることができるが,モデルの安定性やロバスト性のために連続変数を離散化する場合がある.テキスト型フィーチャーは、モデリング分析に使用するために数値型フィーチャーに変換する必要があることが多い.
2.3.1分箱(離散化)処理
分箱処理:データを分類する
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv')
dep_new=pd.DataFrame(dep[' ']) # dep_new
dep_new[' 1']=pd.cut(dep[' '],bins=[0,30,60,80]) #
dep_new[' 1']=pd.cut(dep[' '],bins=[0,30,60,80],labels=[' ',' ',' ']) # labels
dep_new[' 2']=pd.cut(dep[' '],5) # 5
dep_new[' 2']=pd.cut(dep[' '],5,labels=['1','2','3','4','5']) # labels
# qcut()
dep_new[' 3']=pd.qcut(dep[' '],[0,0.1,0.3,0.5,0.7,0.9,1]) # 5
dep_new[' 3']=pd.qcut(dep[' '],[0,0.1,0.3,0.5,0.7,0.9,1],labels=['1','2','3','4','5','6']) # labels
dep_new
2.3.2テキスト変数変換
表示
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv')
# : value_counts()
a=dep[' '].value_counts(ascending=True)
# : unique() nunique()
b=dep[' '].unique()
c=dep[' '].nunique()
b
Unique()は、カラムのすべての一意値(フィーチャーのすべての一意値)nunique()を配列形式で返す一意値の個数です.
テキスト変換
pandas.Series.map:
Series.map(self, arg, na_action=None)
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv')
# replace()
dep['Sex']=dep[' '].replace({
'male':1,'female':2})
#map()
dep['Sex2']=dep[' '].map({
'male':1,'female':2})
dep
----------------------------------------------------------------------------------------
sklearn処理分類特徴preprocessing.LabelEncoder:ラベル専用で、分類を分類数値に変換できます
from sklearn.preprocessing import LabelEncoder
for feat in [' ', ' ']:
lbl = LabelEncoder()
label_dict = dict(zip(dep[feat].unique(), range(dep[feat].nunique())))
dep[feat + "_labelEncode"] = dep[feat].map(label_dict)
dep[feat + "_labelEncode"] = lbl.fit_transform(dep[feat].astype(str))
dep.head()
カテゴリテキストをone-hot符号化に変換
for feat in [' ', ' ']:
# x = pd.get_dummies(df["Age"] // 6)
# x = pd.get_dummies(pd.cut(df['Age'],5))
x = pd.get_dummies(dep[feat], prefix=feat)
dep = pd.concat([dep, x], axis=1)
#df[feat] = pd.get_dummies(df[feat], prefix=feat)
dep.head()```
#### 2.3.3
```python
dep['Title'] = dep[' '].str.extract('([A-Za-z]+)\.', expand=False)
dep.to_csv('train_clean_final.csv')
dep
二、練習データの処理
1、処理手順
1.欠落値の処理は、欠落値(例えば、0または平均数、前の桁数など)の代わりに論理的な数で行う.重複値3をクリアする.年齢分箱処理(5段に分ける)4.テキスト変数をデジタル変数またはone-hotで符号化するなど、テキスト変数を変換する.フィールドからフィーチャー値6を抽出する.データの前処理完了、データの保存
https://www.cnblogs.com/lavender1221/p/12724186.html# https://zhuanlan.zhihu.com/p/59252361