
ゆうき( @BASEBALLY15 )です^^
Pythonで機械学習をしているのですが,なかなか精度が上がりません・・・
データフレームをグループに分けてみてはいかがですか?
そんな手があるのですね!?
(※これからご紹介するコードは,以下のブログ内で使っています.)
それでは,コードを見ていきましょう^^

Today’s Code
以下のDataFrameのように,値ごとにグループ分けするためには,
コードを1行記述するだけで完成します^^

progression | ret | |
---|---|---|
0 | 151.0 | 4 |
1 | 75.0 | 2 |
2 | 141.0 | 3 |
3 | 206.0 | 5 |
4 | 135.0 | 3 |
そのコードがこちらです⤵
diabets_df["ret"] = (diabets_df["progression"]//50+1).astype(int)
このコードは,
- diabets_df[“progression”]//50+1:” PROGRESSION “の値を50で割った余りに1を足す
- astype(int):” PROGRESSION “内のデータを整数型と定義する
ということを意味しています.
astype(int) を記述することで,仮に文字型になっていても,整数型に変換してくれます^^
以下に,Today’s Codeまでの流れを載せておきます.
ライブラリ
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#使うデータを読み込むためのライブラリ
from sklearn.datasets import load_diabetes
コード
#データの読み込み
diabets = load_diabetes()
#DataFrameの作成
diabets_df = pd.DataFrame(diabets.data)
#DataFrameにカラムを追加
diabets_df.columns = diabets.feature_names
#データフレームにtargetを追加
diabets_df["progression"] = diabets.target
#DataFrameの値をグループ分けする
diabets_df["ret"] = (diabets_df["progression"]//50+1).astype(int)
終わりに
今回は,DataFrame内の値をグループ分けする方法について,ご紹介しました.
今後も,自分が勉強をしていて,便利だと思ったコードを発信していきたいと思います^^
それでは・・・