ノンプログラマーのためのPython学習サイト

Pandas|文字列のデータ抽出の方法まとめ

eye_catch_Pandas

困っている人

  • Pandasの文字列のデータ抽出の方法を知りたい
  • DataFrameの特定の列や行を抽出したい
  • 特定の条件に一致するデータ(文字列)を抽出したい
この記事で解決できること
  • 文字列のデータ抽出の方法が一通り分かる
  • 特定の列や行を抽出する方法が分かる
  • 特定の条件に一致するデータ(文字列)が抽出できる

データの前処理や分析をする時には、特定の条件に一致したデータ(文字列)だけを抽出したい場面がよくあります。

この記事では、Pandasを使ってDataFrameの特定の列や行、あるいは特定の条件に一致するデータを抽出する方法について説明していきます。

PandasのインポートとExcelファイル読み込み

pandas_データ抽出(文字列)

import pandas as pd
fruits_df = pd.read_excel('/content/fruits_20201018.xlsx')
fruits_df

1.pandasのインポート
2.データフレーム (fruits_df)へExcelファイルの読み込み
3.データフレーム (fruits_df)を表示

条件に一致する行のみデータ抽出(文字列)

pandas_データ抽出(文字列)

fruits_df1 = fruits_df[fruits_df.フルーツ == 'りんご']
fruits_df1

1.フルーツが”りんご”と一致する行のみデータ抽出
2.データフレーム (fruits_df1)を表示

条件に一致しない行のみデータ抽出(文字列)

pandas_データ抽出(文字列)

fruits_df1 = fruits_df[fruits_df.フルーツ != 'りんご']
fruits_df1

1.フルーツが”りんご”以外と一致する行のみデータ抽出
2.データフレーム (fruits_df1)を表示

条件に一致する行のみデータ抽出(一部の文字列)

pandas_データ抽出(文字列)

fruits_df4 = fruits_df[fruits_df['商品コード'].str.contains('C')]
fruits_df4

1.商品コードに”C”が含まれている行のみデータ抽出
2.データフレーム (fruits_df4)を表示

複数条件に一致する行のみデータ抽出(文字列)_2種類

pandas_データ抽出(文字列)

fruits_df2 = fruits_df[fruits_df['産地'].isin(['青森','長野'])]
fruits_df2

1.産地が”青森”と”長野”に一致する行のみデータ抽出
2.データフレーム (fruits_df2)を表示

複数条件に一致する行のみデータ抽出(文字列)_3種類

pandas_データ抽出(文字列)

fruits_df3 = fruits_df[fruits_df['商品名'].isin(['ふじ','巨峰','甘夏'])]
fruits_df3

1.商品名が”ふじ”と”巨峰”と”甘夏”に一致する行のみデータ抽出
2.データフレーム (fruits_df3)を表示

複数条件に一致する行のみデータ抽出(文字列・and条件)

pandas_データ抽出(文字列)

fruits_df5 = fruits_df[(fruits_df["フルーツ"] == "りんご") & (fruits_df["産地"] == "青森")]
fruits_df5

1.フルーツが”りんご”、そして産地が”青森”に一致する行のみデータ抽出
2.データフレーム (fruits_df5)を表示

複数条件に一致する行のみデータ抽出(一部の文字列・and条件)

pandas_データ抽出(文字列)

fruits_df6 = fruits_df[(fruits_df["フルーツ"] == "りんご") & (fruits_df['商品名'].str.contains('王'))]
fruits_df6

1.フルーツが”りんご”、そして商品名に”王”が含まれる行のみデータ抽出
2.データフレーム (fruits_df6)を表示

複数条件に一致する行のみデータ抽出(文字列・or条件)

pandasデータ抽出

fruits_df7 = fruits_df[(fruits_df["フルーツ"] == "りんご") | (fruits_df["産地"] == "長野")]
fruits_df7

1.フルーツが”りんご”、または産地が”長野”に一致する行のみデータ抽出
2.データフレーム (fruits_df7)を表示

複数条件に一致する行のみデータ抽出(一部の文字列・or条件)

pandas_データ抽出(文字列)

fruits_df8 = fruits_df[(fruits_df["フルーツ"] == "ぶどう") | (fruits_df['産地'].str.contains('島'))]
fruits_df8

1.フルーツが”ぶどう”、または産地に”島”が含まれる行のみデータ抽出
2.データフレーム (fruits_df8)を表示