2
我試圖讀取具有無標題列的CSV文件。目前,我的解決方案是擺脫沒有標題的列
df = pd.read_csv("test.csv")
df = df[[col for col in df.columns if 'Unnamed' not in col]]
這看起來有點不好意思,如果文件中包含單詞'Unnamed'的列,它們會失敗。有一個更好的方法嗎?
我試圖讀取具有無標題列的CSV文件。目前,我的解決方案是擺脫沒有標題的列
df = pd.read_csv("test.csv")
df = df[[col for col in df.columns if 'Unnamed' not in col]]
這看起來有點不好意思,如果文件中包含單詞'Unnamed'的列,它們會失敗。有一個更好的方法嗎?
也許你可以先重命名這些列?
df = pd.read_csv("test.csv")
df.columns = df.columns.str.replace('^Unnamed:.*', '')
df[[col for col in df.columns if col]]
仍然非常不好意思,但至少這隻會替換以「未命名:」開頭的字符串,然後再過濾它們。
read_csv
函數的參數usecols
接受可調用函數作爲輸入。如果您爲不需要的列標題提供了評估爲False
的函數,則會刪除這些列。
func = lambda x: not x.startswith('Unnamed: ')
df = pd.read_csv('test.csv', usecols=func)
我想這個解決方案雖然沒有真正的根本上不同於原來的解決方案。
我認爲這已經是一個相當不錯的解決方案。如果你想使它稍微更健壯,那麼你仍然可以用'如果不是col.startswith('Unnamed:')'替換'not'未命名的''。 – Xukrao