MyUtils

View on GitHub

Pandas how to Kaggle,ML メモ

このメモは Kaggle or ML にてデータクレンジングを行うためのメモです。

titanic/train.csvを前提に作成した。(メジャーかつ取得しやすいので)

home


pandas の基本的な操作

from pandas import read_csv
# index_colを指定することでdataのindexを指定できる。
train_data = read_csv("/kaggle/input/titanic/train.csv",index_col=0)
test_data["Survived"] = gender_data["Survived"]

# 下記のようにすることで Sex(column)がmaleのdataのみ取得できる。
train_data[train_data["Sex"] == "male"]
# axis = 1とすることで指定したcolumnの削除となる?
drop_col = ["Name",]
train_data_p= train_data.drop(drop_col,axis=1)
# info確認
train_data_p.info()
# 先頭の数個のデータを表示
train_data.head()
train_dataset = dataset.sample(frac=0.8,random_state=0)
test_dataset = dataset.drop(train_dataset.index)
# key取得
print(train_data_p.keys())
print(data.keys())
# index指定取得
print(ans.iloc[0:3])
# index(数値で検索の掛け方)(他のcolumnの代わりにindexで指定するだけ)
test_data_p[test_data_p.index > 891]

データクレンジングなどに使うやつ

# get_dummies を使った方法
cabin_one_hot=pd.get_dummies(train_data_p,columns=["Sex","Cabin","Embarked","Pclass"],)
cabin_one_hot.head()

# locを使った方法で分けることもできる(ただし条件がFalseだった側がnanとなる。)
tmp.loc[tmp["Sex"] == "male","male"]=1
tmp.loc[tmp["Sex"] != "male","female"]=1
tmp.head()

# np.whereを使った方法(割と直感的でおすすめ)
tmp["male"] = np.where(tmp["Sex"] == "male",1,0)
tmp["female"] = np.where(tmp["Sex"] != "male",1,0)
tmp.head()
# fix Age # Nan Value replace -1 and add columns Validate Age Flug
total_data["ValAge"] = np.where((total_data.Age.isnull() == True), 1,0)
total_data.Age = np.where(total_data.ValAge == 1, -1 ,total_data.Age)
total_data.tail()
train_data_p["Cabin"] = train_data_p["Cabin"].str.extract('(?P<cabin>^.)',expand=False).fillna("no_data")
train_data_p.head()

割と便利な機能

import seaborn as sns
sns.pairplot(train_dataset[["MPG", "Cylinders", "Displacement", "Weight"]], diag_kind="kde")

# 全てのキーで組み合わせ分布を作成してくれる
import seaborn as sns
sns.pairplot(train_data_p[train_data_p.keys()],diag_kind="kde")

# sns.pairplot(cabin_one_hot[cabin_one_hot.keys()[0:6]],diag_kind="kde")
#cabin_one_hot.hist()

# indexを指定した組み合わせも作成できる。
idx = pd.Index(["Survived","Age","Fare","Sex_male","Sex_female"])
sns.pairplot(cabin_one_hot[idx],diag_kind="kde", kind='reg',hue="Survived")