CSV-python PR

Python pandas CSVファイルの出力方法

Python pandas CSVファイルの出力方法のアイキャッチ画像
記事内に商品プロモーションを含む場合があります

はじめに

無料で使えるPythonのデータ解析ライブラリ 「pandas」で、CSVを出力(書き込み)をする方法を紹介します。「難しい内容は抜きにして、PandasでCSVファイルを出力する方法が知りたい」という方は是非ご覧ください。

行番号無効化の方法(Indexオプション)も併せて解説します。

環境

この記事は以下の環境で作成しています。

環境 バージョンなど
Python 3.9.6
pandas 4.7.2
OS Wiindows10

「Windows10 + Python + pandas + venv」の環境で作成しています。(AnacondaやJupiterNotebookは使用していません)

「環境やインストール方法が知りたい」という方は、こちらの記事をご覧ください。

コードの概要

コードの概要は以下の通りです。「CSVファイルの読み取り」「データ追加」「CSVファイルの書き込み」を行います。

コードの概要
  • CSVファイルの読み取り
  • データの追加
  • CSVファイルの書き込み

実行結果

後述する「CSVファイルを出力するコード」の実行結果は以下の通りです。既存のCSVファイル「data.csv」にデータを追加したものを「addData.csv」として出力しています。

pandasでCSVファイルを出力するコードで使用する読み取り用のCSV
既存のCSVファイル
pandasでCSVファイルを出力するコードで出力したCSVファイル
出力したCSVファイル

全体コード

「CSVファイルを出力するコード」 は以下の通りです。詳細は後述の「コードのポイント」をご覧ください。

import pandas as pd
import os

# CSVファイルを読み込みます
# 自動的にDataFrameの形式になります
df = pd.read_csv("data.csv")

# CSVデータを表示します
print(df)

# データを追加します
df.at  = ["jiro" ,11,"Blue" ,True ] 
df.at = ["sabro",12,"Green",False ] 

# 追加後のデータを再表示します
print(df)

# フォルダを作成します
os.makedirs("SaveFolder", exist_ok=True)

# CSVファイルを出力します
df.to_csv("SaveFolder\\addData.csv", index=False )

# index オプションなし
# df.to_csv("SaveFolder\\addData.csv")

コードのポイント

read_csv関数で便利にCSVを読み込む

read_csv関数を使って、CSVファイルを読み込みます。

pandasのCSVファイル出力する場合、出力するデータは「DataFrame」か「Series」形式である必要があります。

今回使うread_csv関数は、対象データを自動的に「DataFrame」の形式で読み込むので、後でそのままCSVファイルへ書き込むことができます。

# CSVファイルを読み込みます
# 自動的にDataFrameの形式になります
df = pd.read_csv("data.csv")

※ DataFrameの詳細はこちらの記事をご覧ください。

atプロパティで行を追加する

DataFrame型のプロパティ 「at 」を使って行を追加します。使用していない行番号にデータを代入すると、新規の行が追加できます。

# データを追加します
df.at  = ["jiro" ,11,"Blue" ,True ] 
df.at = ["sabro",12,"Green",False ] 

※ atプロパティの詳細は、こちらの記事をご覧ください。

to_csv関数でCSVファイルを出力する

to_csv関数に保存したいフォルダ名(パス)を指定して、CSVファイルを出力します。

以下のコードは、実行するPythonファイルと同じ場所にある「SaveFolder」フォルダを指定しています。

# フォルダを作成します
os.makedirs("SaveFolder", exist_ok=True)

# CSVファイルを出力します
df.to_csv("SaveFolder\\addData.csv", index=False )

保存先のフォルダの説明

to_csv関数ではフォルダは自動作成されません。
フォルダを新規作成したい場合は、os.makedirs() などで予めフォルダを作成してください。フォルダがない場合にto_csv関数を実行すると、FileNotFoundError が発生します。

行番号の無効化

pandasでは、先頭に行番号(Index)がついていないCSVファイルを読み込むと、データの先頭に自動的に行番号が追加されます。

この行番号は出力時も残るため、ファイル出力時に元ファイルとフォーマットが変わってしまう、という問題が発生します。

上記問題には、to_csv関数にindex=Falseを指定することで対処可能です。Falseを指定することで、行番号のファイル出力を無効化できます。行番号を有効/無効にした例を以下に示します。

行番号が出力される例

index=False指定しないと、行番号が出力されます。

# index オプションなし
# df.to_csv("SaveFolder\\addData.csv")

indexオプションなしで出力して、先頭に行番号がついたCSVファイル
行番号が出力されたCSVファイル

行番号が出力されない例

index=False指定すると、行番号は出力されません。

# CSVファイルを出力します
df.to_csv("SaveFolder\\addData.csv", index=False )

indexオプションありで出力したCSVファイル
行番号が出力されないCSVファイル

まとめ

無料で使えるPythonのデータ解析ライブラリ 「pandas」で「CSVの出力(書き込み)をする方法」と「行番号の無効化」について解説しました。参考になればうれしいです。

pandas CSV その他の記事

CSVの読み込み時のShift-JIS対策も解説しています。興味のある方はご覧ください。

質問・要望 大歓迎です

「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。

使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です