Pandas の CSV に追加する

Manav Narula 2021年2月21日
Pandas の CSV に追加する

Python Pandas では、データを効率的に操作および管理することができます。DataFrames を作成して管理したり、DataFrames に対して様々な操作を行うことができます。また、外部の CSV ファイルやエクセルファイルを読み込み、DataFrame をインポートして作業を行い、保存することもできます。データを保存する上で興味深い機能として、パラメータ a を使った append モードがあり、これを使って既存の CSV ファイルにデータを追加することができます。

この記事では、Pandas を使って CSV にデータを追加する方法を紹介します。

import pandas as pd

df = pd.DataFrame([[6, 7, 8], [9, 12, 14], [8, 10, 6]], columns=["a", "b", "c"])

print(df)

df.to_csv(r"C:\Test\data.csv", index=False)

df2 = pd.DataFrame([[4, 1, 3], [6, 7, 2], [5, 9, 4]], columns=["a", "b", "c"])

print(df2)

df2.to_csv(r"C:\Test\data.csv", mode="a", header=False, index=False)

出力:

   a   b   c
0  6   7   8
1  9  12  14
2  8  10   6
   a  b  c
0  4  1  3
1  6  7  2
2  5  9  4

pandas csv に追加

保存された CSV ファイルには、df2 のデータが付加された DataFrames が両方とも元のファイルに保存されます。

このコードにはもう一つの追加機能があります。ほんの数行のコードで、to_csv() 関数はファイルが存在しない場合にはファイルを作成し、既に存在する場合にはヘッダをスキップします。例外処理には with 文を使用し、ファイルを開くには open() を使用します。

import pandas as pd

df = pd.DataFrame([[6, 7, 8], [9, 12, 14], [8, 10, 6]], columns=["a", "b", "c"])

print(df)

df.to_csv(r"C:\Test\data.csv", index=False)

df2 = pd.DataFrame([[4, 1, 3], [6, 7, 2], [5, 9, 4]], columns=["a", "b", "c"])

print(df2)

with open(r"C:\Test\data.csv", mode="a") as f:
    df2.to_csv(f, header=f.tell() == 0, index=False)

出力:

   a   b   c
0  6   7   8
1  9  12  14
2  8  10   6
   a  b  c
0  4  1  3
1  6  7  2
2  5  9  4

ファイルオブジェクトの tell() メソッドは現在のカーソル位置を返します。したがって、ファイルが空か存在しない場合は f.tell==0True であるため、headerTrue に、そうでない場合は headerFalse に設定されます。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn