Comma Separated Value の略。
主に表計算ソフト間の互換フォーマットとして用いられる。「カンマでカラムが区切られ、改行で行が区切られる」という漠然としたルールで明確なフォーマットの仕様や標準は存在しなかったが、2005年10月にCSVの仕様について書かれたRFC 4180が公開された。
また、タブ区切りなどもCSVに含める場合がある。これは "Character-Separated Values" の略である。
バージョン管理システムのCVSと間違いやすい。
この Tips シリーズでは、#9 までに基本的なデータ構造を整理し、#10 以降は Python イディオム(Python 特有の慣用的な書き方)を紹介してきました。今回は、実務で役立つ Python実践スキル の9回目として、データ処理の現場で登場頻度の高い CSV処理 を整理します。 「Excelで開いたら文字化け」「大量のCSVを一括処理したい」「データを集計・加工したい」― そんな実務の困りごとを、Pythonの標準ライブラリ csv で解決します。
CSV・Excelのデータ入力/整形/集計を依頼したい方へ(PR) データ入力や整形(表記ゆれ・空白・重複など)に時間を取られている方向けに、作業を代行します。納品はファイル(xlsx/csv)で完結します。 対応内容 データ入力(指定フォーマットへの転記、リスト作成) 整形(全角/半角、空白、表記統一、重複チェック 等) 簡単な集計(関数/ピボット)、グラフ(目安:1〜2点) 納品ファイル整理(ファイル名・フォルダ分け) 依頼時に送ってほしいもの 元データ(xlsx/csv/テキスト等) 完成イメージ(列名・並び順・形式、例があれば最高) 件数(行数の目安)と納期希望 整形ルール(例:日付形…
こんにちは。いーかです。このページは、WindowsでCSV/JSON/TXTなどを扱うときに起きがちな BOM(\ufeff)問題を、症状から最短で解決記事へ飛べるように整理した「シリーズまとめ(ハブ記事)」です。 「列があるのに KeyError」「JSONが読めない」「PowerShellのコマンドが動かない」など、事故ったときに ここに戻ってくればOK、という作りにしています。 ※検索で多い言い方:**「UTF-8 BOM あり/なし」「CSV 列名 KeyError」「JSONDecodeError BOM」「Excel CSV 全部1列」「PowerShell BOM 確認」**に…
こんにちは。いーかです。この記事では、Windows環境でPythonを使ってCSV/JSON/TXTを扱うときに起きがちな文字コード事故を、チェックリスト10個として“再発防止の型”にまとめます。BOM(\ufeff)も当然カバーします。 ⚠️ 最初に注意(ここで詰まる人が多い) PowerShellは バージョン差があります。特に Windows PowerShell 5.1 だと、記事やネットのコマンドがそのまま動かないことがあります。 Get-Content -AsByteStream が 無い Format-Hex の引数(例:-Count)が 環境で違う .ps1 を UTF-8(…
こんにちは。いーかです。この記事では、pandasでCSVを読むときに地味に刺さる BOM(\ufeff)問題を、encoding="utf-8-sig" を中心に、いつ使うべきか/いつ要らないかまで含めて整理します。 結論(1行) Windows由来のCSVで列名ズレ(\ufeff混入)が疑わしいなら、まず pd.read_csv(..., encoding="utf-8-sig")。BOMを“読む側で吸収”できて、最短で安全です。 救急コピペ(まずこれだけで原因が見える) 「列名が変」「KeyError」「BOMっぽい?」と思ったら、まずこれをコピペでOKです。 import pandas…
こんにちは。いーかです。この記事では、Excelで作ったデータをCSVにしてPython(pandas)で読むときに起きがちな「文字化け」「列ズレ」「読めない」を、**3大原因(BOM・改行・区切り文字)**で整理して、最短で切り分ける手順をまとめます。 結論(1行) Excel→CSV→Python事故の多くは「BOM」「改行(CRLF)」「区切り文字(, / ; / タブ)」のどれか。まず“原因の切り分け”をすると、直し方は一気に簡単になります。 救急コピペ(まずこれだけやれば原因が見える) 「とりあえず読みたい」「どこが壊れてるか知りたい」人は、まずこれをコピペでOKです。※BOM対策込…
こんにちは。いーかです。この記事では、Windowsで「このファイル、BOM付いてる?」を PowerShellだけで確実に確認する方法をまとめます。CSV/JSON/TXTなど、UTF-8テキスト全般にそのまま使えます。 ⚠️ 注意:PowerShell 5.1は“環境差”と“.ps1文字化け”がある(最初にここだけ) PowerShellは バージョンによって使える引数や挙動が違うことがあります。実際に私の環境(Windows PowerShell 5.1)では、次の地雷がありました。 Get-Content -AsByteStream が 存在しない Format-Hex の引数(例:-…
こんにちは。いーかです。この記事では、Windowsで起きがちなBOM事故(CSV列名ズレ、JSONキー不一致など)を減らすために、VS Codeでファイルを 「UTF-8(BOMなし)」 に統一して保存する手順を、迷わない形でまとめます。 結論(1行) VS Codeなら、右下の文字コード表示 →「Save with Encoding」→「UTF-8」を選べば、UTF-8(BOMなし)で保存できます。 まず前提:「UTF-8(BOMなし)」にすると何が嬉しい? BOMなしに統一すると、こういう事故が減ります。 pandasで df["id"] が KeyError(実は \ufeffid だ…
あるある!ここは記事としての完成度を上げる“100点パッチ”ポイントだね。結論:各コードブロックを単体コピペしても動くように、必要な import をブロック内に入れるのが正解。 下に「そのまま差し替えできる」形で、**import不足を全部潰した修正版(秘書②)**を置くよ。(※本文の構造はほぼそのまま、コードだけ“コピペ耐性”を上げてある) 【Python】BOM(\ufeff)を削除する方法:UTF-8-SIG / 置換 / 保存し直しの比較 こんにちは。いーかです。この記事では、BOM(\ufeff)が混ざって起きるトラブルを「どう直すか」を、3つの方法で比較します。CSV/JSON/…
こんにちは。いーかです。この記事では、pandasでCSVを読んだときに 「列名が合わない」 「列があるのに KeyError が出る」 みたいなトラブルが出たとき、原因が BOM(\ufeff) だった……という“あるある”を、症状→確認→原因→対処→再発防止まで、迷わない順でまとめます。 ✅注意:本文中の sample.csv は例です。自分で用意したCSVにするか、いま困っているCSVファイル名に置き換えて使ってください。 結論(1行) CSV先頭に UTF-8 BOM(EF BB BF) があると、先頭列名が \ufeffid のようにズレて KeyError の原因になることがありま…