pandasで条件抽出する2つの方法(単一条件、複数条件)
pandasで条件抽出する方法には、queryメソッドを使う場合と使わない場合がある。
A列に1-100、B列に101-200、 C列に201から300のデータが並んでいる100行のデータを考える。
df = pd.DataFrame({
"A":[i for i in range(100)],
"B":[i+100 for i in range(100)],
"C":[i+200 for i in range(100)],])
メソッドを使用しない場合:
#A列が20未満を抜き出す
df = df[(df["A"]<20)]
#A列が20より大きく、かつ、50未満を抜き出す
df = df[(df["A"]>20)&(df["A"]<50)]
#A列が20より大きく、または、50未満を抜き出す
df = df[(df["Α"]>20)|(dF["B"]<50))
複数条件の場合、かっこで個々の条件を囲む必要がある。
queryメソッドを使用する場合:
単一条件での抽出:
#Aが20未満を抜き出す
df = df.query('A< 20')
df = df.query('(A > 20) and (A < 50)')
df = df.query('(A > 20) | (A < 50)')
個人的にはqueryを使わない方が好みです。