簡體   English   中英

如果我有空白標題條目,pd.read_csv 創建一個多索引數據幀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM