pandas read_excel:nan值强迫其他人在同一列转换为浮动

比方说,我有以下的Excel文件被读取:

在这里输入图像说明

我想要的是一个简单的解决scheme(最好是单行),可以读取excel,使date转换为str (或至lessint ),空白值是nannat或任何可以由pd.isnull检测到的pd.isnull

如果我使用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 

所以大pandas认为空白细胞就是NaN ,这很好,但是宠物们认为所有其他的值都是被迫float64 ,即使它们只是strint s。 ( 编辑 :似乎如果一列,如列[1] ,没有nan ,那么其他值将不会被迫float 。但在我的情况下,大多数列delist_date空白,因为大多数股票有一个IPOdate,但尚未被除牌。)

对于我所知道的,我尝试了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 

看起来不错? 的确,date现在已经str ,但有一点可笑的是,现在的nan已经变成了string了! 例如

 df.iloc[1, 0] Out[12]: 'nan' 

这将使我不得不添加像df.replace稍后奇怪。

我没有尝试converters因为它需要逐列指定数据types,而我正在使用的实际excel文件是一个非常长的电子表格(约3k列)。 我不想在Excel中转​​换电子表格。

有人可以帮忙吗? 提前致谢。

使用dtype = object作为参数。

这里很好的解释: str和objecttypes之间的pandas区别