導入
「点数が80以上の人だけ」のように、条件に合う行だけを取り出す操作は分析の基本中の基本です。
説明
df["列"] >= 80 のように条件を書くと True/False の Series ができ、それを df[...] に入れると条件を満たす行だけが残ります。
import pandas as pd
df = pd.DataFrame({
"name": ["Tanaka", "Suzuki", "Sato", "Ito"],
"score": [80, 95, 70, 88],
})
print(df[df["score"] >= 80])
複数の条件は &(かつ)や |(または)でつなぎます。各条件は必ずカッコで囲むのがルールです。
import pandas as pd
df = pd.DataFrame({
"name": ["Tanaka", "Suzuki", "Sato", "Ito"],
"age": [28, 34, 22, 41],
"score": [80, 95, 70, 88],
})
# 30歳以上 かつ 85点以上
print(df[(df["age"] >= 30) & (df["score"] >= 85)])
(df["age"] >= 30) & (df["score"] >= 85) のように、カッコを外すとエラーになります。ここは初心者がよくつまずくところなので気をつけましょう。
やってみよう
条件を df["score"] < 80 に変えて、80点未満の人を取り出しましょう。| を使って「22歳 または 95点」の行を出すこともできます。
演習
上の df から、score が85以上の行だけを取り出して表示してください。
ヒント1を見る
df[df["score"] >= 85]。