CSV-python

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は使用していません)

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

楽天ブックス
¥1,980 (2022/09/21 10:02時点 | 楽天市場調べ)

コードの概要

コードの概要は以下の通りです。「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の出力(書き込み)をする方法」と「行番号の無効化」について解説しました。参考になればうれしいです。

Pythonを使ったデータサイエンス講座

この記事は入門的な内容ですが、実はUdemyの動画講座なら初心者の方でも「データサイエンスのためのPythonの使い方」を「手を動かしながら」学べます。

講師は米国在住の現役データサイエンティストで、数ある講座の中でも「最高評価」を受けています。同講師による「Pythonでの統計学超入門講座」なども公開されているので「ビックデータを解析してみたい」という方は、以下のリンクを見てみてください。

⇒ 米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座を見る

⇒ 米国データサイエンティストが教える統計学超入門講座【Pythonで実践】を見る

pandas CSV その他の記事

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

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

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

COMMENT

メールアドレスが公開されることはありません。