困っている人
- Pandasの数値のデータ抽出の方法を知りたい
- DataFrameの特定の列や行を抽出したい
- 特定の条件に一致するデータ(数値)を抽出したい
この記事で解決できること
- 数値のデータ抽出の方法が一通り分かる
- 特定の列や行を抽出する方法が分かる
- 特定の条件に一致するデータ(数値)が抽出できる
データの前処理や分析をする時には、特定の条件に一致したデータ(数値)だけを抽出したい場面がよくあります。
この記事では、Pandasを使ってDataFrameの特定の列や行、あるいは特定の条件に一致するデータ(数値)を抽出する方法について説明していきます。
目次
PandasのインポートとExcelファイル読み込み
import pandas as pd fruits_df = pd.read_excel('/content/fruits_20201019.xlsx') fruits_df
- pandasのインポート
- データフレーム (fruits_df)へExcelファイルの読み込み
- データフレーム (fruits_df)を表示
条件に一致する行のみデータ抽出(数値)
fruits_df1 = fruits_df[fruits_df.販売数 == 90] fruits_df1
- 販売数が”90”と一致する行のみデータ抽出
- データフレーム (fruits_df1)を表示
条件に一致する行のみデータ抽出(比較演算子)_その1
fruits_df2 = fruits_df[fruits_df.販売数 < 50] fruits_df2
- 販売数が”50より少ない”行のみデータ抽出
- データフレーム (fruits_df2)を表示
条件に一致する行のみデータ抽出(比較演算子)_その2
fruits_df3 = fruits_df[fruits_df.販売数 >= 50] fruits_df3
- 販売数が”50以上”の行のみデータ抽出
- データフレーム (fruits_df3)を表示
複数条件に一致する行のみデータ抽出(数値・and条件)
fruits_df4 = fruits_df[(fruits_df['フルーツ']=='りんご') & (fruits_df['販売数']<=90)] fruits_df4
- フルーツが”りんご”、販売数が”90以下”に一致する行のみデータ抽出
- データフレーム (fruits_df4)を表示
複数条件に一致する行のみデータ抽出(数値・or条件)
fruits_df5 = fruits_df[(fruits_df['フルーツ']=='りんご') | (fruits_df['販売数']>=50)] fruits_df5
- フルーツが”りんご”、販売数が”50以上”に一致する行のみデータ抽出
- データフレーム (fruits_df5)を表示
【queryメソッド】条件に一致する行のみデータ抽出(数値)
fruits_df6 = fruits_df.query('販売数 == 90') fruits_df6
- 販売数が”90”に一致する行のみデータ抽出
- データフレーム (fruits_df6)を表示
【queryメソッド】条件に一致する行のみデータ抽出(数値・リスト)
fruits_df7 = fruits_df.query("販売数 == ['10', '90']") fruits_df7
- 販売数が”10”、”90″に一致する行のみデータ抽出
- データフレーム (fruits_df7)を表示
【queryメソッド】条件に一致する行のみデータ抽出(比較演算子)_その1
fruits_df8 = fruits_df.query('販売数 < 50') fruits_df8
- 販売数が”50より小さい”行のみデータ抽出
- データフレーム (fruits_df8)を表示
【queryメソッド】複数条件に一致する行のみデータ抽出(比較演算子)_その1
fruits_df9 = fruits_df.query('50 < 販売数 < 80') fruits_df9
- 販売数が”50より大きい”、かつ”80より小さい行のみデータ抽出
- データフレーム (fruits_df9)を表示
【queryメソッド】複数条件に一致する行のみデータ抽出(比較演算子・and条件)
fruits_df10 = fruits_df.query("販売数 >= 50 & フルーツ == 'りんご'") fruits_df10
- 販売数が”50以上”、かつフルーツが”りんご”に一致する行のみデータ抽出
- データフレーム (fruits_df10)を表示
【queryメソッド】複数条件に一致する行のみデータ抽出(比較演算子・or条件)
fruits_df11 = fruits_df.query("販売数 >= 80 | フルーツ == 'みかん'") fruits_df11
- 販売数が”80以上”、またはフルーツが”みかん”に一致する行のみデータ抽出
- データフレーム (fruits_df11)を表示