Pandas インデックスなしで CSV に変換

Manav Narula 2020年12月21日
Pandas インデックスなしで CSV に変換

ご存知のように、インデックスは、DataFrame 内のレコードを格納し、アクセスするための参照ポイントとして考えることができます。彼らは各行に固有であり、通常は 0 から DataFrame の最後の行までの範囲ですが、シリアル番号、日付、およびその他の一意の列を DataFrame のインデックスとして使用することもできます。

しかし、ファイルをエクスポートしたり、読み込んだりする際に、この余分なインデックス列が必要ない場合があります。この問題は、次の DataFrame を使用してより明確に説明されます。

import pandas as pd

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

print(df)

出力:

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

ご覧のように、DataFrame に追加のインデックスが追加されていますが、これはファイルに保存している間にユーザーが避けることができます。この DataFrame をインデックスを含まない CSV ファイルに変換したい場合は、関数 to_csv()indexFalse に設定することで変換することができます。

コード例:

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("data2.csv", index=False)

出力:

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

出力を見ると、DataFrame にはインデックスがありますが、index パラメータに False を設定しているので、エクスポートされた CSV ファイルにはインデックスの列がありません。

Pandas をインデックスなしで CSV に変換する

インデックスカラムが追加されたファイルをエクスポートして(index パラメータに False を設定せずに)、それを読み込もうとすると、奇妙なカラムが追加されてしまいます。

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("data2.csv")

df_new = pd.read_csv("data2.csv")

print(df_new)

出力:

   a   b   c
0  6   7   8
1  9  12  14
2  8  10   6
   Unnamed: 0  a   b   c
0           0  6   7   8
1           1  9  12  14
2           2  8  10   6

見ての通り、df_new DataFrame には Unnamed カラムが追加されています。

著者: 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

関連記事 - Pandas DataFrame

関連記事 - Pandas CSV