[英]pd.read_csv creates a multi-index dataframe if I have blank header entries
我有一個 csv,其中未指定所有列標題。
temp.csv 讀取,
a, b
1, 2, 3, 4
5, 6, 7, 8
當我嘗試用 Pandas 讀取這個時,我得到了一個多索引數據框。
pd.read_csv('temp.csv')
產生輸出,
a b
1 2 3 4
5 6 7 8
我想要的是 [1, 5] 列標題為 'a',而 [2, 6] 列為 'b'。 顯式設置 index_col=None 不能解決問題。 有任何想法嗎?
編輯:謝謝ALollz。 我稍微修改了你的答案,所以我只讀了一次文件。 (我會閱讀很多文件。)
df = pd.read_csv('temp.csv')
names = df.columns.tolist()
df.reset_index(inplace=True)
df.columns = names + [i for i in range(df.shape[1] - len(names))]
您可以使用header=0
和要指定的names
的組合來忽略損壞的標題:
pd.read_csv('temp.csv', header=0, names=['a', 'b', 'col1', 'col2'])
# a b col1 col2
#0 1 2 3 4
#1 5 6 7 8
如果您不想手動指定內容,您可以閱讀第一行以使用標題,然后確定您需要提供多少其他名稱。
names = pd.read_csv('temp.csv', nrows=1)
names = names.columns.tolist() + [f'col{i}' for i in range(1, df.shape[1] - len(names))]
df = pd.read_csv('temp.csv', header=0, names=names)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.