【Python】CSVモジュールでCSV出力するときの、ヘッダーの付け方

 

CSVモジュールでCSV出力するとき、ヘッダーを付けてみます。

CSVファイルの先頭行にヘッダーを付けるには

CSVファイル出力のとき、1行目にヘッダーを入れたいと思います。
項目名の行ですね。

データの配列に項目名もまとめて入れてしまうやり方と、データの配列とは別にヘッダー行を入れるやり方を書いてみました。

配列にまとめて入れる

今回の例はコーヒーのメニューです。

まずは配列にヘッダー行もまとめて書いてみます

 

実行してみたところ、ヘッダー行を付けて出力できました。

 

with文でCSVファイルを開いているのは、with文を抜けたときにCSVファイルも自動的に閉じてくれるからです。
閉じ忘れがなくて、しかもソースコードをシンプルにできます。

Pythonの参考書でよく見かけるヤツですね。

newline=””で改行を制御していて、無駄な空行が入らないようにしています。

書き込むときに付ける

CSVファイルに書き込むとき、ヘッダー行を付ける場合です。

 

まずは実行してみます。
最初のやり方と同じく、ヘッダー行を付けて保存できました。

データ部だけの配列と、ヘッダーと分けて書き込むほうが、汎用性があるように思います。
好みによるのかもしれないですが。

Pandasを使って読み込んで保存しなおしてみる

表データを扱うライブラリのPandasで、読み込んで再度保存してみます。

 

header = Falseなどのオプションを付けていないので、ヘッダー行もインデックスも付くはずです。
実行してみると・・・。

1行目にMenu,Price が表示されました。

 

Pandasで配列のデータをCSV出力したら、ヘッダーは「1,2,3」のように数字で付いてしまいますが、今回はもともと付けていた項目名になりました。
ちゃんとヘッダーとして認識してくれたようですね。

PandasでCSV出力するときのヘッダーの扱いは、こちらの記事をどうぞ。

【Python】PandasでCSV出力するときの、ヘッダーとインデックス

まとめ:CSV出力するときの、ヘッダーの付け方

writerowなどで書き込むとき、ヘッダー用の文字列が先頭にくるよう出力します。

Pandasは便利ですが、CSVモジュールもしっかり使えるようにしたいものです。