比方說,我有以下的Excel文件來讀:大熊貓read_excel:NaN值強迫他人在同一列轉換爲浮動
我想是一個簡單的解決方案(最好是單行),可以讀取excel,以便將日期轉換爲str
(或至少int
),空白值爲nan
或nat
或任何可由檢測到的內容。
如果我使用df = pd.read_excel(file_path)
,我所得到的是
df
Out[8]:
001002.XY 600123.AB 123456.YZ 555555.GO
ipo_date 20100203.0 20150605 NaN 20090501.0
delist_date NaN 20170801 NaN NaN
所以公認的空白單元格爲NaN
,這是很好的,但忌諱的是,所有其他值都被迫float64
,即使大熊貓他們意圖僅僅是str
或int
s。 (編輯:似乎如果列,例如列[1]
,沒有nan
s,那麼其他值將不會被強制爲float
。但在我的情況下,大多數列有delist_date
空白,因爲大多數股票有一個IPO日期,但尚未摘牌。)
對於我所知道的,雖然,我試過dtype=str
關鍵字ARG,和它給了我
df
Out[10]:
001002.XY 600123.AB 123456.YZ 555555.GO
ipo_date 20100203 20150605 nan 20090501
delist_date nan 20170801 nan nan
看起來不錯?確實,日期現在爲str
,但有一點可笑的是,nan
現在變成了文字串!例如。
df.iloc[1, 0]
Out[12]:
'nan'
這將使我不得不添加一些奇怪的東西,如df.replace
稍後。
我沒有嘗試converters
,因爲它需要逐列指定數據類型,而我正在使用的實際excel文件是一個很長的電子表格(大約3k列)。我不想在excel中轉換電子表格。
任何人都可以幫忙嗎?提前致謝。
我發現了類似的意外行爲。我不知道埃弗特對我的問題[這裏](https://stackoverflow.com/a/45814200/4799172)的出色答案給出了任何見解。 – roganjosh
@roganjosh謝謝我要檢查出來。 – Vim
它絕對是一個切線,但我發現數據類型轉換奇怪(從我的情況csv),所以也許它給你另一個角度。 – roganjosh