將 Pandas 轉換為不帶索引的 CSV
Manav Narula
2020年12月19日
如你所知,索引可以被認為是一個參考點,用於儲存和訪問 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
列。
Author: Manav Narula
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