pandas神坑:如果列有NAN,則默認給數據轉換爲float類型

data = pandas.read_excel(file)

結果讀完一個excel,我所有爲空的單元格,他全部給我按nan算了,好無語。

然後debug去查看這個nan,居然還是float類型,爲什麼不用字符串呢?
所以我們想把對應nan的數據改爲自己想要的數據,就要操作一番。

第一種:

data.fillna('', inplace=True)

直接替換讀取到的數據中爲空的數據爲空字符串

第二種:

在讀取文件前,直接指定對應列的類型

dtype_dic= {'音樂類型': str, '專輯名稱' : str}

當然,如果全部都要用字符串的話,可以這樣:

header = pd.read_excel("your_file.csv", nrows=1) # 僅取第一行的標題
col_str_dic = {column:str for column in list(header)}
df = pd.read_excel(file, dtype=col_str_dic)

然後在讀取文件的時候指定這個類型

df = pd.read_excel(file, dtype = dtype_dic)

 參考自:https://stackoverflow.com/questions/13250046/how-to-keep-leading-zeros-in-a-column-when-reading-csv-with-pandas

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章