プログラミングとデータ分析系の基礎を勉強している話
2の続き。
loc関数 loc [ [A]==1 , B ] =1
カラムAが1だった時、カラムBの値を1にするの意味
locはカラム指定して操作する関数っぽい→っぽいというのが気持ち悪いがとりあえず今はこんな感じで。
for dataset in full_data: dataset['Embarked'] = dataset['Embarked'].fillna('S') for dataset in full_data: dataset['Fare'] = dataset['Fare'].fillna(train['Fare'].median())
この辺は問題なし。とりあえずfillna()関数出てきたけど.前のカラムの欠損部分に()内の処理でデータ埋め込むとかそんなんでしょ多分()
for dataset in full_data: age_avg = dataset['Age'].mean() age_std = dataset['Age'].std() age_null_count = dataset['Age'].isnull().sum() age_null_random_list = np.random.randint(age_avg - age_std, age_avg + age_std, size=age_null_count) dataset['Age'][np.isnan(dataset['Age'])] = age_null_random_list dataset['Age'] = dataset['Age'].astype(int)
ここ結構難しい。is.null.sum()→意味不明ぐぐる
要は指定した要素の欠損値をTrue、埋まってるのをFalse判定する関数らしい。
でTrueは=1なのでsumると欠損データの数がわかる。
ランダム変数発生させる範囲が平均と偏差の和と差なのが意味不明である。→有識者に質問中→特に誠実な範囲指定ではないらしいので却下。
それとfor文の位置、6行目の前でもよくない?なぜ1行目だ?→華麗に放置。
やってることはわかるので次に進む。
def get_title(name): title_search = re.search(' ([A-Za-z]+).', name) if title_search: return title_search.group(1) return ""
んーなんだこれは?
def get_title(name): →これは多分下記の関数をこの名前で定義しますってことやろな。defとか言ってるし。
中身。意味不明すぎて笑う。 まずre.search→ reってライブラリの中のsearchってころやろ??
docs.python.orgよくわかるPhyton公式ドキュメント。search(A,B)でBの文字列内のAをマッチさせる関数ということらしい。
が。([A-Za-z]+)\.←こいつなんやねん
正規表現っていうらしい。
連続するコードなら-で表すだから[A-Za-z]なら任意のアルファベットってこと。
後ろの+は「一回以上の繰り返し」の意味。そのあとの\.は.自体を文字列として認識させたいときにおくらしい。
今日はここまであかん眠い…