Pythonの知識の復習
ifの時は:が要る。returnではいらない。
Pythonの関数定義でデフォルト引数を設定すると、関数呼び出し時に引数を省略した場合にデフォルト値が使用されるようになる。—> 前処理関数に使うと実験しやすいっぽい。
def fill_age(df, method="mean"):
if method == "mean":
df["Age"] = df["Age"].fillna(df["Age"].mean())
elif method == "median":
df["Age"] = df["Age"].fillna(df["Age"].median())
else:
df["Age"] = df["Age"].fillna(0)
return df
年齢(Age)に欠損があるから、とりあえず平均で埋めたい。
でも後で 中央値 とか 0 とかも試したい。
A.csvの最初5行目を見たい時は、
A.head()
https://note.nkmk.me/python-pandas-len-shape-size/
pandasのcsv–>DataFrameでできたオブジェクトの属性として, df_train.shapeで(行数, 列数) のタプルを返す。
| 目的 | 使うもの |
|---|---|
| 中身の例を見る | head() |
| 行×列のサイズ | shape |
| 欠損・型・概要 | info() |
<class 'pandas.core.series.Series'> RangeIndex: 891 entries, 0 to 890 Series name: Pclass Non-Null Count Dtype -------------- ----- 891 non-null object dtypes: object(1) memory usage: 7.1+ KB <class 'pandas.core.frame.DataFrame'> RangeIndex: 891 entries, 0 to 890 Data columns (total 1 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Pclass 891 non-null object dtypes: object(1) memory usage: 7.1+ KB
df_train[“Pclass”].info()
df_train[[“Pclass”]].info()
は違うらしい。
df_train.isnull() をすると、df_train(表)の欠損部分がある場合がTrueとして表に出てくる。それを.sum()で足してどの列にどのくらいnullがあるかを確かめる。
目的変数が2値の場合は, y_train.mean()で1の割合が出せる。
y_train["Survived"].mean()
np.float64(0.3838383838383838)
- train_test_split は 学習用と検証用を分ける関数。
-
StratifiedKFold
はクロスバリデーションに使う。
-
