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