Pythonでデータ分析や業務効率化をするとき、必ずと言っていいほど登場するのが Pandas(パンダス) です。基本的なデータフレームの作り方や読み込みは知っていても、「複数のデータをまとめて集計する」「複数のCSVを結合する」「グラフでパッと可視化する」といった応用テクニックを使いこなせると、業務スピードが何倍にも変わります。
売上データを担当者ごとに自動集計したり、複数のシステムから出てきたCSVを1つにまとめたり、Excelでは時間がかかる集計を数行のコードで終わらせたり。そんな未来を引き寄せるための応用テクを、動画の内容に沿って整理しました。✨
「担当者ごと」「曜日ごと」「商品カテゴリごと」のように、ある列の値でグループ化して集計したいときに使うのが groupby です。たとえば8月の売上実績データから、担当者ごとの1日あたりの平均売上を出したいとします。
書き方はとてもシンプルで、df.groupby("担当者").mean() のように、第1引数にグループ化したい列名を指定し、続けて集計用のメソッドを呼び出すだけ。これだけで佐藤さんの平均、斉藤さんの平均、田中さんの平均がパッと表示されます。便利すぎますよね。🎯
数値以外の列が混ざっているときは、numeric_only=True を指定すると数値列だけを対象に集計してくれます。エラーで止まらず、必要なデータだけスッキリ取り出せます。
集計関数は、列ごとにNaNを除外してから計算します。たとえば金曜日の売上が1件だけ欠損していると、count() の結果も他の列より1件少なくなります。「数が合わない…」と思ったら、まずNaNの有無を疑ってみましょう。🧐
データフレームのインデックスは、後から自由に変更できます。地味ですが、表計算で言う「並べ替え」「キー設定」に相当する大事な操作です。
inplace=True を付けると元のデータフレーム自体が書き換わり、付けないと新しいデータフレームが返ってくる、という違いも押さえておくと混乱しません。
pd.concat([df1, df2]) でデータフレームをそのまま連結できます。デフォルトは縦方向、axis=1 を指定すると横方向の連結になります。3つ以上のデータフレームをまとめて渡せるのもポイントです。
連結時に片方にしかない列がある場合、その部分はNaNで埋められます。「データが消えた」のではなく、「もう片方になかったから空欄」と考えると分かりやすいです。📝
SQLのJOINに相当するのが pd.merge。共通のキー(例:ユーザーID)を指定して、横方向にデータを結合します。
使い方は pd.merge(df1, df2, on="ユーザーID", how="left") のように、on でキー、how で結合方式を指定。3つ以上を一度には結合できないので、2つずつ繰り返すのがコツです。🔁
「20歳以上なら成人、それ未満なら未成年」のような条件付きの新しい列を作りたいときは、map とラムダ式の組み合わせが強力です。
たとえば df["区分"] = df["年齢"].map(lambda x: "成人" if x >= 20 else "未成年") と書くだけで、年齢列の各値が順番にラムダ式に渡され、結果が新しい列として追加されます。Excelの IF 関数を一気に全行に適用するイメージですね。⚡
分析結果は数値だけより、グラフで見せたほうが断然伝わります。Pandasにはデータフレームから直接グラフを描ける plot メソッドが用意されています。
使い方は df.plot(x="ユーザー", y="購入額", kind="bar") のように、X軸・Y軸の列と kind でグラフ種類を指定するだけ。kind="bar" なら棒グラフ、デフォルトは折れ線グラフになります。
日本語ラベルが文字化けする場合は、事前に pip install japanize-matplotlib しておき、import japanize_matplotlib を1行書くだけで解決。グラフが一気に読みやすくなります。🇯🇵
動画やブログで全体像をつかんだら、書籍で体系的に深掘りするのが上達への近道です。Pandasだけでなく、データ分析・可視化・機械学習との組み合わせまで一気に押さえると、実務での応用力が一段上がります。📈
Pandasの作者自身が著者を務める世界的な定番書。データの前処理・集計・結合・可視化までを網羅し、業務で困ったときに辞書代わりに使える1冊です。
業務データにありがちな「欠損値」「日付処理」「結合」「集計」を、Pandasのメソッドベースでパターン化して解説。レシピ集として机に置いておきたい1冊です。
Pandasで整えたデータを、scikit-learnで実際にモデル化する流れを学べる定番書。「集計の次のステップ」を狙う人に最適です。
matplotlibやseabornを使った美しいグラフ作成を、Pandasと組み合わせて学べる1冊。「分析→可視化→共有」までの流れがスムーズになります。
ExcelやCSV、Webスクレイピングと組み合わせて、Pandasで日々の業務を自動化する方法を学べる実践書。明日からのルーティンが軽くなります。
はい、df.groupby(["担当者", "曜日"]) のようにリストで複数列を指定すると、組み合わせごとにグループ化されます。クロス集計に近いことが手軽にできます。
同じ形のデータをそのままつなげるなら concat、共通のキーで関連付けて結合するなら merge、と覚えると分かりやすいです。SQLに慣れている方には merge がJOINと同じ感覚で使えます。
多くの集計関数はNaNを自動で除外するため、列ごとに件数や平均が変わることがあります。必要に応じて fillna() で値を埋めるか、dropna() で行を除外してから集計しましょう。
ベクトル化された操作(map、apply よりも純粋なPandas/NumPy演算)を使う、不要な列を早めに削る、データ型を最適化する、といった工夫で速くなります。それでも遅ければ Polars や Dask への移行も選択肢です。
matplotlib単体だと日本語フォントの設定が必要ですが、japanize-matplotlib をインストールして import japanize_matplotlib を1行書くだけで自動解決できます。手軽でおすすめです。
Pandasの基本に groupby・concat・merge・map・plot を加えるだけで、扱えるデータの幅と分析の深さが一気に広がります。Excelで手作業していた集計やグラフ作成が、数行のコードで自動化できる。これが応用編の醍醐味です。🚀
最初は引数や使い分けで迷うかもしれませんが、書籍で体系的に学びながら手を動かせば、必ず体に染み込みます。今回紹介した書籍を相棒に、あなたのデータ活用スキルを次のステージへ引き上げてみてください。📚