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()
で 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", index=False)
出力:
a b c
0 6 7 8
1 9 12 14
2 8 10 6
出力を見ると、DataFrame にはインデックスがありますが、index
パラメータに False
を設定しているので、エクスポートされた 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 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 DataFrame の列ヘッダーをリストとして取得する方法
- Pandas DataFrame 列を削除する方法
- Pandas で DataFrame 列を日時に変換する方法
- Pandas DataFrame で浮動小数点数 float を整数 int に変換する方法
- Pandas DataFrame を 1つの列の値で並べ替える方法
- Pandas group-by と Sum の集計を取得する方法