將 Pandas 轉換為不帶索引的 CSV

Manav Narula 2020年12月19日
將 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 檔案不會有額外的一列。

將 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 列。

Author: 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