pandas read_excel:nan值强迫其他人在同一列转换为浮动
比方说,我有以下的Excel文件被读取:
我想要的是一个简单的解决scheme(最好是单行),可以读取excel,使date转换为str
(或至lessint
),空白值是nan
或nat
或任何可以由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
,即使它们只是str
或int
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区别