困っている人
- Pandasの文字列のデータ抽出の方法を知りたい
- DataFrameの特定の列や行を抽出したい
- 特定の条件に一致するデータ(文字列)を抽出したい
この記事で解決できること
- 文字列のデータ抽出の方法が一通り分かる
- 特定の列や行を抽出する方法が分かる
- 特定の条件に一致するデータ(文字列)が抽出できる
データの前処理や分析をする時には、特定の条件に一致したデータ(文字列)だけを抽出したい場面がよくあります。
この記事では、Pandasを使ってDataFrameの特定の列や行、あるいは特定の条件に一致するデータを抽出する方法について説明していきます。
目次
PandasのインポートとExcelファイル読み込み
import pandas as pd fruits_df = pd.read_excel('/content/fruits_20201018.xlsx') fruits_df
- pandasのインポート
- データフレーム (fruits_df)へExcelファイルの読み込み
- データフレーム (fruits_df)を表示
条件に一致する行のみデータ抽出(文字列)
fruits_df1 = fruits_df[fruits_df.フルーツ == 'りんご'] fruits_df1
- フルーツが”りんご”と一致する行のみデータ抽出
- データフレーム (fruits_df1)を表示
条件に一致しない行のみデータ抽出(文字列)
fruits_df1 = fruits_df[fruits_df.フルーツ != 'りんご'] fruits_df1
- フルーツが”りんご”以外と一致する行のみデータ抽出
- データフレーム (fruits_df1)を表示
条件に一致する行のみデータ抽出(一部の文字列)
fruits_df4 = fruits_df[fruits_df['商品コード'].str.contains('C')] fruits_df4
- 商品コードに”C”が含まれている行のみデータ抽出
- データフレーム (fruits_df4)を表示
複数条件に一致する行のみデータ抽出(文字列)_2種類
fruits_df2 = fruits_df[fruits_df['産地'].isin(['青森','長野'])] fruits_df2
- 産地が”青森”と”長野”に一致する行のみデータ抽出
- データフレーム (fruits_df2)を表示
複数条件に一致する行のみデータ抽出(文字列)_3種類
fruits_df3 = fruits_df[fruits_df['商品名'].isin(['ふじ','巨峰','甘夏'])] fruits_df3
- 商品名が”ふじ”と”巨峰”と”甘夏”に一致する行のみデータ抽出
- データフレーム (fruits_df3)を表示
複数条件に一致する行のみデータ抽出(文字列・and条件)
fruits_df5 = fruits_df[(fruits_df["フルーツ"] == "りんご") & (fruits_df["産地"] == "青森")] fruits_df5
- フルーツが”りんご”、そして産地が”青森”に一致する行のみデータ抽出
- データフレーム (fruits_df5)を表示
複数条件に一致する行のみデータ抽出(一部の文字列・and条件)
fruits_df6 = fruits_df[(fruits_df["フルーツ"] == "りんご") & (fruits_df['商品名'].str.contains('王'))] fruits_df6
- フルーツが”りんご”、そして商品名に”王”が含まれる行のみデータ抽出
- データフレーム (fruits_df6)を表示
複数条件に一致する行のみデータ抽出(文字列・or条件)
fruits_df7 = fruits_df[(fruits_df["フルーツ"] == "りんご") | (fruits_df["産地"] == "長野")] fruits_df7
- フルーツが”りんご”、または産地が”長野”に一致する行のみデータ抽出
- データフレーム (fruits_df7)を表示
複数条件に一致する行のみデータ抽出(一部の文字列・or条件)
fruits_df8 = fruits_df[(fruits_df["フルーツ"] == "ぶどう") | (fruits_df['産地'].str.contains('島'))] fruits_df8
- フルーツが”ぶどう”、または産地に”島”が含まれる行のみデータ抽出
- データフレーム (fruits_df8)を表示