Menu
CoddyTech

行のフィルタリング

CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 38/60。

多くの場合、質問に応じて一部の行だけを残します。たとえば、月額1000未満のアパートや、60歳を超える患者です。列に対する比較は、各行についてTrueまたはFalseを返し、マスクになります。

アパートの表とそのマスクを並べて表示。家賃が1000未満の場合、行0と4はTrue、残りはFalse。行0と4は残す行として強調表示され、その他の行は薄く表示されている

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] は一致した行数を数えます。

challenge icon

チャレンジ

中級

ハイキングクラブは、列trail、km、climb_m(登る標高差、メートル)を含むtrails.csvにトレイルの一覧を記録しています。プログラムは、最長距離max_kmと最小登高差min_climbを読み取ります。

  1. 長さがmax_km以下かつ登高差がmin_climbメートル以上のトレイルをpickedに残します。
  2. pickedを出力します。
  3. 以下のように、条件に合うトレイルの数を出力します。

別のトレイル一覧の場合:

        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())

# 以下にコードを書いてください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

データとプロットのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ