Pandas の DataFrame を CSV に書き込む

  1. pandas.DataFrame.to_csv() 関数の構文
  2. 関数 pandas.DataFrame.to_csv() を用いて DataFrame を CSV ファイルに書き込む
  3. インデックスを無視して pandas.DataFrame.to_csv() 関数を使用してデータフレームを CSV ファイルに書き込む
  4. 関数 pandas.DataFrame.to_csv() にセパレータを指定する
Pandas の DataFrame を CSV に書き込む

このチュートリアルでは、pandas.DataFrame.to_csv() 関数を使って、DataFrame を CSV ファイルに書き込む方法を説明します。関数 pandas.DataFrame.to_csv() は DataFrame のエントリを CSV ファイルに書き込みます。

pandas.DataFrame.to_csv() 関数の構文

pandas.DataFrame.to_csv(  path_or_buf=None,  sep=",",  na_rep="",  float_format=None,  columns=None,  header=True,  index=True,  index_label=None,  mode="w",  encoding=None,  compression="infer",  quoting=None,  quotechar='""',  line_terminator=None,  chunksize=None,  date_format=None,  doublequote=True,  escapechar=None,  decimal=".", ) 

関数 pandas.DataFrame.to_csv() を用いて DataFrame を CSV ファイルに書き込む

import pandas as pd  mid_term_marks = {  "Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],  "Economics": [10, 8, 6, 5, 8],  "Fine Arts": [7, 8, 5, 9, 6],  "Mathematics": [7, 3, 5, 8, 5], }   mid_term_marks_df = pd.DataFrame(mid_term_marks)  print(mid_term_marks_df) 

出力:

 Student Economics Fine Arts Mathematics 0 Kamal 10 7 7 1 Arun 8 8 3 2 David 6 5 5 3 Thomas 5 9 8 4 Steven 8 6 5 

次に、DataFrame mid_term_marks_df を CSV ファイルに書き込みます。

import pandas as pd  mid_term_marks = {  "Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],  "Economics": [10, 8, 6, 5, 8],  "Fine Arts": [7, 8, 5, 9, 6],  "Mathematics": [7, 3, 5, 8, 5], }   mid_term_marks_df = pd.DataFrame(mid_term_marks)  mid_term_marks_df.to_csv("midterm.csv") 

midterm.csv というファイルを作成し、行内の隣接する値をカンマ , で区切ったファイルに DataFrame の値を書き込みます。

midterm.csv ファイルの内容は以下のようになります。

,Student,Economics,Fine Arts,Mathematics 0,Kamal,10,7,7 1,Arun,8,8,3 2,David,6,5,5 3,Thomas,5,9,8 4,Steven,8,6,5 

デフォルトでは、pandas.DataFrame.to_csv() 関数は DataFrame のインデックスも CSV に書き込みますが、インデックスが必ずしも有用とは限りません。

インデックスを無視して pandas.DataFrame.to_csv() 関数を使用してデータフレームを CSV ファイルに書き込む

インデックスを無視するには、関数 pandas.DataFrame.to_csv()index=False を指定します。

import pandas as pd  mid_term_marks = {  "Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],  "Economics": [10, 8, 6, 5, 8],  "Fine Arts": [7, 8, 5, 9, 6],  "Mathematics": [7, 3, 5, 8, 5], }   mid_term_marks_df = pd.DataFrame(mid_term_marks)  mid_term_marks_df.to_csv("midterm.csv", index=False) 

この場合、midterm.csv ファイルの内容は midterm.csv となります。

Student,Economics,Fine Arts,Mathematics Kamal,10,7,7 Arun,8,8,3 David,6,5,5 Thomas,5,9,8 Steven,8,6,5 

DataFrame の内容を CSV ファイルに書き込む際に UnicodeEncodeError が発生することがあります。そのような場合は、encoding='utf-8'を設定することで utf-8 のエンコーディング形式を有効にすることができます。

関数 pandas.DataFrame.to_csv() にセパレータを指定する

デフォルトでは、DataFrame を CSV ファイルに書き込むとき、値はカンマで区切られます。その他の記号を区切り文字として使用したい場合は、sep パラメータで指定します。

import pandas as pd  mid_term_marks = {  "Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],  "Economics": [10, 8, 6, 5, 8],  "Fine Arts": [7, 8, 5, 9, 6],  "Mathematics": [7, 3, 5, 8, 5], }   mid_term_marks_df = pd.DataFrame(mid_term_marks)  mid_term_marks_df.to_csv("midterm.csv", index=False, sep="\t") 

この場合、midterm.csv ファイルの内容は以下のようになります。

Student Economics Fine Arts Mathematics Kamal 10 7 7 Arun 8 8 3 David 6 5 5 Thomas 5 9 8 Steven 8 6 5 

ここでは値はタブで区切られています。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Pandas DataFrame