はじめに
最近Kaggleを始めたのですが,pandasで出来ることの便利さと多さ,それに付随してたまにメソッドを忘れてしまう問題が発生したのでメモ次いでにirisデータでデータをいじりまとめてみることにした。
読み込み
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
iris = pd.DataFrame(iris.data, columns=iris.feature_names)
行,列指定
pandasのdataframeではスライスがしようできないのでilocメソッドなとを使用する
iris.iloc[1,2]#1行目の2列目
iris.iloc[:,2]#2列目
ある列の値からフラグ付け
irisのsepal lengthが5.0cm以上の時にフラグを付けたい場合はapplyとlambdaを利用する
iris["sepal_len_flag"] = iris["sepal length (cm)"].apply(lambda x:1 if 5 < x else 0)
groupごとに集計をする
groupbyによってグループごとの統計量を取得できる]
iris.groupby("sepal_len_flag")["sepal width (cm)"].mean()#sepallenflagごとのsepalwidthの平均を取得する
グループごと,カラムごとに別々の統計処理を行う
groupbyの後ろにaggとつけ引数に辞書形式で指定することで,カラムごとに個別の処理を書けることができる
iris.groupby("sepal_len_flag").agg({"sepal length (cm)":"mean","sepal width (cm)":["max","min"]})
ある行の最大値のインデックスをとる
idxmaxメソッドによって最大値のインデックスが返される
iris["sepal length (cm)"].idxmax()"sepal lengthの最大値のインデックスを返す