Pandas to_csv()で Unnamed: 0 というカラムが作成された時の対処法

この記事ではPandasを用いてデータフレーム(DataFrame)を書き出しする際に、to_csv()を用いると、「Unnamed: 0」というカラムが作成され困った・・・という方向けの記事です。

Unnamed: 0″カラムを非表示にしたいという方や、「Unnamed: 0」カラムが作成されないようにするためにはどうすれば良いのか知りたいという方は是非読んでみてください。

解決方法(結論)

結論から先にお伝え致します。解決方法は、to_csv()の引数にindex=Falseを指定すれば良いです。

それでは実際にindex=Falseを指定しないパターンと指定したパターンの違いを確認してみましょう。

先ずは、index=Falseを指定しないパターンです。

import pandas as pd
data = [[63, "B"],
         [45, "C"],
         [ 85, "A"]]

df = pd.DataFrame(data=data, columns= ["得点", "ランク"])
df.to_csv('data1.csv')

その後、read_csv()を用いて読み込んでみましょう。

df = pd.read_csv("data1.csv")
df

すると、案の定 Unnamed: 0 カラムが作成されてしまっています。

ちなみにですが、to_csv()にindex=Falseをつけ忘れてしまったとしても、 read_csv()利用時に、 index_col=0 をつけて読み込めば、 「Unnamed: 0」というカラムは読み込まれなくなります。

df = pd.read_csv("data1.csv",index_col=0)
df

では続いて、index=Falseを指定したパターンを確認していきましょう。

import pandas as pd
data = [[63, "B"],
         [45, "C"],
         [ 85, "A"]]

df = pd.DataFrame(data=data, columns= ["得点", "ランク"])
df.to_csv('data2.csv', index=False)

それではread_csv()にindex_col=0をつけずに、素直にread_csv()を実行してみます。

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

すると正しく、「Unnamed: 0」カラムが作成されていないことが確認できました。

Pythonを効率よく学ぶには?

Pythonを効率よく学ぶには、普段からPythonを利用している現役のデータサイエンティストや機械学習エンジニアに質問できる環境で学ぶことです。
質問し放題かつ、体系的に学べる動画コンテンツでデータ分析技術を学びたい方は、オンラインで好きな時間に勉強できるAI Academy Bootcampがオススメです。受講料も業界最安値の35,000円(6ヶ月間質問し放題+オリジナルの動画コンテンツ、テキストコンテンツの利用可能)なので、是非ご活用ください。