Pandas DataFrame DataFrame.to_csv() 関数

Minahil Noor 2023年1月30日
  1. pandas.DataFrame.to_csv() の構文
  2. コード例:DataFrame.to_csv()
  3. コード例:DataFrame.to_csv() で CSV データの区切り文字を指定する
  4. コード例:DataFrame.to_csv() で少数のカラムを選択し、カラム名を変更する
Pandas DataFrame DataFrame.to_csv() 関数

Python Pandas DataFrame.to_csv() 関数は、DataFrame の行と列に含まれる値を CSV ファイルに保存します。また、DataFrame を CSV の string に変換することもできます。

pandas.DataFrame.to_csv() の構文

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=".",
)

パラメータ

この関数はいくつかのパラメータを持っています。すべてのパラメータのデフォルト値は上記の通りです。

path_or_buf これは文字列またはファイルハンドルです。これはファイルまたはファイルオブジェクトの名前を表します。値が None の場合、DataFrame は CSV の文字列に変換されます。
sep これは文字列です。これは CSV ファイルで使われる区切り文字を表します。
na_rep これは文字列です。これは欠損データを表します。
float_format これは文字列です。これは浮動小数点数の書式を表します。
columns これは sequence です。これは CSV ファイルに保存される DataFrame のカラムを表します。
header これはブール値か文字列のリストです。値が False に設定されている場合、カラム名は CSV ファイルに保存されません。文字列のリストを指定した場合は、これらの文字列がカラム名として保存されます。
index これはブール値です。値が True の場合、行の名前(インデックス)が保存されます。
index_label これは文字列または シーケンス です。これは特定のインデックスのカラム名を表します。
mode これは文字列です。これは処理のモードを表します。ここでは DataFrame を CSV ファイルに書き込んでいるので、その値は Python の書き込みモード w です。
encoding これは文字列です。これは CSV ファイルで使用するエンコーディングスキームを表します。デフォルトのエンコーディングは utf-8 です。
compression これは文字列か辞書です。文字列の場合は圧縮モードを表します。辞書の場合は、method の値が圧縮モードを表します。圧縮モードはいくつかあります。ここにある [ https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html ] を参照してください。
quoting これは CSV モジュールからの定数を表します。
quotechar これは文字列です。長さは 1 で、フィールドの引用に使われる文字を表します。
line_terminator これは文字列です。これは CSV ファイルの改行の文字を表します。
chunksize 整数です。一度に CSV ファイルに書き込む行数を表します。
date_format これは文字列です。これは DateTime オブジェクトのフォーマットを表します。
doublequote これはブール値です。これは quotechar のクォートを制御します。
escapechar これは文字列です。これは sepquotechar のエスケープに使われる文字を表します。
decimal これは文字列です。小数点以下の小数点に使われる文字を表します。

戻り値

戻り値は None か文字列です。path_or_bufNone の場合は DataFrame を文字列に変換して文字列を返します。それ以外の場合は None を返します。

コード例:DataFrame.to_csv()

この関数は、次のいくつかのコードで異なる方法で実装されます。

import pandas as pd

dataframe=pd.DataFrame({
                        'Attendance': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95},
                        'Name': 
                            {0: 'Olivia', 
                            1: 'John', 
                            2: 'Laura',
                            3: 'Ben',
                            4: 'Kevin'},
                        'Obtained Marks': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45}
                        })

print(dataframe)

DataFrame の例は、

   Attendance    Name  Obtained Marks
0          60  Olivia              90
1         100    John              75
2          80   Laura              82
3          78     Ben              64
4          95   Kevin              45

この関数のすべてのパラメータはオプションです。パラメータを渡さずにこの関数を実行すると、以下のような出力が得られます。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

csvstring = dataframe.to_csv()
print(csvstring)

出力:

,Attendance,Name,Obtained Marks
0,60,Olivia,90
1,100,John,75
2,80,Laura,82
3,78,Ben,64
4,95,Kevin,45

この関数はすべてのデフォルト値を用いて出力を生成しました。この関数は CSV 文字列を返しました。ここで、データを CSV ファイルに保存します。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

returnValue = dataframe.to_csv("myfile.csv")
print(returnValue)

出力:

None

この関数はプログラムが保存されているディレクトリに新しい CSV ファイルを作成しました。

コード例:DataFrame.to_csv() で CSV データの区切り文字を指定する

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

returnValue = dataframe.to_csv(sep="@")
print(returnValue)

出力:

@Attendance@Name@Obtained Marks

0@60@Olivia@90

1@100@John@75

2@80@Laura@82

3@78@Ben@64

4@95@Kevin@45

コード例:DataFrame.to_csv() で少数のカラムを選択し、カラム名を変更する

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45},
    }
)

returnValue = dataframe.to_csv(
    "myfile.csv", columns=["Name", "Obtained Marks"], header=["Full Name", "Marks"]
)
print(returnValue)

出力:

None

Pandas DataFrame to_csv

上記のコードと同じように、さまざまなパラメータを使って CSV ファイルをカスタマイズすることができます。この関数にはいくつかのパラメータが用意されています。

関連記事 - Pandas DataFrame