Python

【初心者向け】Python pandas CSVファイルの出力方法

はじめに

無料で使えるPythonのデータ解析ライブラリ 「pandas」で、CSVの出力(書き込み)をする方法を紹介します。「Indexオプションの使用方法」「フォルダ指定方法」も併せて解説します。

環境

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

Python   3.9.6
pandas4.7.2
OS            Windows10                  

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

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

実行結果

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

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

全体コード

「CSVファイルを出力するコード」 は以下の通りです。今回は以下の流れでCSVファイルを作成します。各コードの詳細については後述の「コードのポイント」をご覧ください。

  1. 既存のCSVを「DataFrame」で読み取り
  2. データを追加
  3. 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関数を使うとDataFrameで読み込まれる

read_csv関数でCSVファイルを読み込みます。

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などプロパティの使い方についても以下の記事をご覧ください。

CSV出力フォルダはパスで指定(自動では作成されない)

特定のフォルダにCSVファイルを保存したい場合は、to_csv関数に保存したいフォルダ名(パス)を指定します。以下のコードでは、実行するPythonファイルと同じ場所にある「SaveFolder」というフォルダを指定しています。

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

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

フォルダを新規作成して保存したい場合は、os.makedirs() などで予めフォルダを作成してください。フォルダがない場合は、FileNotFoundError が発生します。

indexオプションで先頭の数字を消す

indexオプションを付けない場合、読み込み後のデータの先頭に行番号(index)が追加されてしまいます。

# index オプションなし
# df.to_csv("SaveFolder\\addData.csv")
indexオプションなしで出力したCSVファイル
indexオプションなしの場合の出力内容

今回のように元々のCSVファイルに行番号がない場合は、indexオプションにfalseを設定することで行番号をなしに設定できます。

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

indexオプションありで出力したCSVファイル
indexオプションありの場合 の出力内容

まとめ

無料で使えるPythonのデータ解析ライブラリ 「pandas」で、「CSVの出力(書き込み)をする方法」「Indexオプションの使用方法」・「フォルダの指定方法」を解説しました。参考になればうれしいです。

このブログでは、pandasの他の使い方についても解説しています。興味のある方は以下の記事もご覧ください。

DataFrameの使い方

CSV読み込みの際のオプションの便利な使い方

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

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

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

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

COMMENT

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