行のフィルタリング
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 38/60。
多くの場合、質問に応じて一部の行だけを残します。たとえば、月額1000未満のアパートや、60歳を超える患者です。列に対する比較は、各行についてTrueまたはFalseを返し、マスクになります。
flats = pd.DataFrame({
"area": ["North", "Center", "East", "Center", "West"],
"rooms": [2, 1, 3, 3, 2],
"rent": [950, 1200, 1100, 1650, 800],
})
print(flats[flats["rent"] < 1000])テーブルの角括弧内では、マスクによってラベルを含むTrueの行が保持されます。
area rooms rent
0 North 2 950
4 West 2 800配列マスクの場合と同様に、条件を &(両方)または |(どちらか)で結合し、それぞれを独自の括弧で囲みます。
print(flats[(flats["rooms"] >= 2) & (flats["rent"] < 1200)])これは次のように表示されます:
area rooms rent
0 North 2 950
2 East 3 1100
4 West 2 800テキストでも同様です: flats["area"] == "Center"。また、.shape[0] は一致した行数を数えます。
チャレンジ
中級ハイキングクラブは、列trail、km、climb_m(登る標高差、メートル)を含むtrails.csvにトレイルの一覧を記録しています。プログラムは、最長距離max_kmと最小登高差min_climbを読み取ります。
- 長さが
max_km以下かつ登高差がmin_climbメートル以上のトレイルをpickedに残します。 pickedを出力します。- 以下のように、条件に合うトレイルの数を出力します。
別のトレイル一覧の場合:
trail km climb_m
1 Bear Creek 6.0 300
5 Old Quarry 9.2 455
Trails that fit: 2自分で試してみよう
import pandas as pd
trails = pd.read_csv("trails.csv")
max_km = float(input())
min_climb = int(input())
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ