数値のビニング
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 54/64。
航空会社は、バッグの料金をグラム単位ではなく、重量区分に応じて請求します。ビニングでは、範囲だけが重要な場合に、数値をビンと呼ばれる範囲に変換します。
pd.cutは値、境界、および各ビンに1つのラベルを指定します:
bags = pd.DataFrame({"kg": [5.5, 23.0, 18.2, 30.5, 7.0, 12.4]})
bags["class"] = pd.cut(bags["kg"], bins=[0, 7, 23, 32],
labels=["cabin", "standard", "heavy"])
print(bags["class"].value_counts().sort_index())これは次のように出力されます:
class
cabin 2
standard 3
heavy 1
Name: count, dtype: int64各ビンには右端が含まれるため、7.0 kgは依然として機内持ち込み手荷物であり、端の範囲外の値はNaNになります。
.sort_index()は、各ビンを軽い順に並べて表示します。
チャレンジ
中級ある動物園では、members.csvのメンバーをageで分類します。childは12歳まで、teenは13歳から17歳、adultは18歳から64歳、seniorは65歳から100歳です。プログラムはgroupを読み取ります。
- 各メンバーの年齢グループを列
groupとして追加します。 - 各グループのメンバー数を、最初に
childを表示して出力します。 - 読み取ったグループの
visitsの平均を、小数点以下2桁で出力します。
規模の小さい動物園で、入力がteenの場合:
group
child 1
teen 2
adult 2
senior 1
Name: count, dtype: int64
Mean visits for teen: 10.5自分で試してみよう
import pandas as pd
members = pd.read_csv("members.csv")
group = input()
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ