プログラミング入門

【pandas初心者向け】pivot_tableでNaNをfill_valueで埋めたら世界がスッキリした

売上データをpandasの pivot_table で集計したら NaN がズラリ…見づらい! と思ったら fill_value を使えば一発で空欄にできて感動しました。

はじめに:NaNが並ぶと「はっ?」となる

ある日のこと。売上データをカテゴリ別・店舗別にクロス集計したくて、pandasの pivot_table を使ってみました。Excelならピボットテーブルでサクッと出せるアレです。

しかし出力された表を見て私は固まりました。空欄のはずのセルに NaN がズラリ

何が起きていたのか

調べたところ、pandasの集計である組み合わせにデータが存在しない場合、結果は NaN(Not a Number)で表現されるとのことでした。Excelのピボットテーブルでは空欄で表示されることが多いので、見慣れないと違和感を覚えます。

私の場合、カテゴリA × 店舗B の組み合わせに売上データがない箇所が NaN として出てきて、表全体が見づらくなっていたのです。

「はっ?」を解消する一行:fill_value

解決したのは意外とあっさり。pivot_tablefill_value 引数を渡すだけでOKでした。

import pandas as pd

# 例: pivot_table の使い方
pd.pivot_table(df,
               values="売上",
               index="商品",
               columns="店舗",
               aggfunc="sum",
               fill_value=" ")  # NaN を空欄にする

これで NaN がスマートに空欄(ここでは半角スペース)に置き換わり、表の見た目が一気に整います。Excelのピボットに慣れている人には特にありがたい機能です。

エクセルでやってた処理がPythonで一発

これまで私はExcelで空欄処理をしていました。条件付き書式やIF関数、手作業で空白に置き換えることも多々ありました。ところがPythonならたった一行で同等の見た目にできます。

正直、「ズルい…!」と軽く嫉妬したくなるほど楽ちんでした(褒め言葉です)。

実務での使い所

  • 売上クロス集計をダッシュボード用に整形するとき
  • CSVで出力してレポートに貼る際に見た目を整えたいとき
  • データが欠損している部分を分かりやすく表示したいとき

どれも頻繁に出てくるユースケースなので、fill_value の存在は覚えておくと地味に役立ちます。

NaNとにらめっこ

NaNを「はっ?」と思いながらにらめっこしてました。けれどその経験があるからこそ次に同じことが起きたときに素早く対応できるようになったわけで、結果オーライです。

学び:小さな便利さが学習のモチベになる

今回の一件で実感したのは、細かな「使い勝手の改善」が学習のモチベーションになるということ。大きなアルゴリズムや難しい概念を学ぶだけでなく、日常の「少しのストレス」を取り除くテクニックに触れることが、継続の原動力になりました。

pandas初心者のみなさん、ぜひ pivot_tablefill_value を試してみてください。表がスッと見やすくなって、「あ、Pythonってやっぱり便利だな」と思えるはずです。

まとめ

  • 問題:pivot_tableの出力に NaN が表示されて見づらい
  • 解決:fill_value=" " を指定して空欄に置き換える
  • 教訓:小さな便利さの発見が学習の継続につながる

この記事が初心者のpandas学習の小さな助けになれば嬉しいです。


ABOUT ME
ショート
文系出身・一般&医療事務歴ありの会社員。 「パソコン苦手…」「残業が当たり前…」そんな日々を変えたくて、40代から独学でPythonやExcelの自動化に挑戦中。 プログラミングもブログも初心者レベルからの出発ですが、“早く帰りたい”一心で効率化を追求しています。 つまずいたリアルな失敗談や、「これならできた!」という事例を通して、パソコンに自信がない人の味方になれるブログを目指しています。