Excel上でPythonが使える「Python in Excel」を使うことで、これまで複雑だったデータ加工や結合処理を、pandasのDataFrame操作として直感的に行えるようになります。この記事では、Python in Excel環境を前提に、mergeによる表結合、sort_valuesによる並び替え、queryによる条件抽出といった、実務でよく使う基本操作を例とともに解説します。Excelユーザーが無理なくPythonによるデータ処理に踏み出すための入門内容です。
Python in Excelの基本に関しては、以下の記事を参考にしてください。
Python in Excelにおけるpandas DataFrameの基本 – Lean Data Office
データフレームを定義する

二つのデータセットをデータフレームとして読ませて使用します。
一つがバンド名とジャンル、結成年を記載し、もう一つが、それぞれのバンドのメンバーの数を記載したデータです。
別シートにて、それぞれのDataFrameをbands1とbands2とPythonで再定義します。
bands1が、上の表の左、bands2が上の表の右に対応しています。

データフレームを結合する:merge
merge()はpandasのメソッドで、二つのデータフレームに共通のキーがあれば、そのキーをベースに結合します。
下の二つのテーブルを確認すると、Group列が完全一致しているため、明示的にどのキーを使って結合するかを示さなくてもGroup列をキーに結合します。
複数のキー候補が存在する場合には以下のコードを例に明示的に示すことをお勧めします。
df = df1.merge(df2, on="Group")

ここでは、bands1をmergeメソッドでbands2と結合します。
そのため以下を実行します。

Members列が追加され、新たなDataFrameとしてbandsを定義できました。

データフレームを並べ替える:sort_values
ここでは上の項で定義したbandsのデータフレームをジャンル(Genre)をアルファベット順に昇順、結成年(Year)を降順に並べ替えを実施します。まず、先にジャンルを指定するので、ジャンル側が優先的に並べ替えられます。
sort_value()メソッドがとる主な引数は、
by(必須): 何を基準に並び変えるか
ascending: 昇順か降順か
の二つです。ここではGenreを昇順、Yearを降順に並び替えます。

実行すると、Genre列は昇順、Year列は降順に並べ替えができました。
Genre、Yearの順で配置したのでGenreが優先的に並び替えされていることに気づくかと思います。

データフレームを抽出する:query
queryメソッドは、DataFrameから所定の条件のデータを抽出するpandasのメソッドです。
queryの引数に条件式を入れて、その条件式にあったデータを新たなデータフレームbandsqに入れるコードです。
bandsq = bands.query("Genre == 'Alternative rock' and Members >= 4")

実行すると、’Alternative rock’と4人以上のメンバーのバンドだけが抽出できました。

ここでお気づきの方もいるかもしれませんが、sort_valuesとqueryからインデックス番号が左端に表示されています。これは、mergeで新たに作成したdfに振られたインデックス番号が表示されている状態です。これを表示しない方法も併せて解説します。
インデックス番号を表示させたくない場合には、
.reset_index(drop=True)
を最後に追加してください。

抽出した内容を出力する際にインデックスを非表示にできます。
データフレームを抽出する:isin
isinメソッドは[条件式]のカッコ内の式に当てはまる行を残す定番の構文です。
ここでは、bandsの”Genre”が”Pop”もしくは”Rock”になっている行を残すコードを書いています。

bands[“Genre”]で”Genre”列を抽出し、isin()にタプルで”Pop”と”Rock”を渡しています。
結果、PopとRockだけがTrueの行と判定され、データフレームに残されます。

データフレームを抽出する:startswith
startswithメソッドを使えば、ある文字列で開始された行だけ抽出することも可能です。
この例では、Group列の値が”The”で始まる行だけ抽出してみます。
bands[条件式]の条件式に、bands[“Group”]で”Group”列を抽出するところまではisinと同じ、このあと、.strで各要素に文字列メソッドを適用します。startswithは文字列専用のメソッドなので、かならず前に.strが付いてきます。
startswithの引数に今回検索したい”The”を渡したのが以下のコードです。

これで実行すると、期待通りTheで始まるバンドのみ抽出することができました。

データフレームに関数を適用する:apply
applyメソッドはデータフレーム全体に関数を適用することができます。
ここでは、バンド名をすべてUpper Case(大文字)にしてみます。.upperメソッドを使います。

applyは引数に関数オブジェクトを渡します。ここでは(str.upper)が例です。
実行してみます。
すべてのバンド名が大文字に変更されています。

まとめ
Python in Excelを使えば、ExcelのデータをpandasのDataFrameとして扱い、結合・並び替え・抽出といった操作をシンプルなコードで実現できます。mergeで表同士の関係を整理し、sortやqueryで必要なデータを素早く整形することで、従来のExcel操作よりも再現性と可読性の高い処理が可能になります。まずは基本操作を押さえ、ExcelとPythonを組み合わせたデータ処理に慣れていくことが重要です。