ITいろいろ

プログラミングやクラウド、データ解析など、ITにかかわることをいろいろと書いています。

Pandasでフィルタ操作(条件によるデータの絞り込み)

Excelでいうフィルタ機能をPythonで実現していきます。 データ操作は、いつも通りPandasで行います。

コード紹介

# インポート
import pandas as pd

# 列の最大表示数を7に設定
pd.set_option('display.max_columns', 7)
# 列の最大表示数を5に設定
pd.set_option('display.max_rows', 5)

# ファイルの取り込み
df = pd.read_excel("05k2-3.xlsx", skiprows=3, skipfooter=3)

print('すべてのデータを表示')
print(df)

df_equal = df[df['人口区分'] == '総人口']
print('人口区分が「総人口」のものを表示')
print(df_equal)

df_contain = df[df['人口区分'].str.contains('日本')]
print('人口区分に「日本」が含まれるものを表示')
print(df_contain)

df_range = df[(df['男女計'] >= 20) & (df['男女計'] < 40)]
print('男女計が20以上40未満のものを表示')
print(df_range)

出力結果

少し解説

文字列の条件

str関数の中にいくつか文字の条件を入れることができます。

  • contains 特定の文字列が含まれる(SQLでいうlikeですね)
  • startswith 特定の文字から始まる
  • endwith 特定の文字で終わる
  • match 特定の正規表現に一致するもの

条件の追加

今回は&をつけてAND条件をコードで紹介しました。

OR条件は|になります。

注意点として、 必ず1つの条件文を()で囲みましょう