我们说我要读取以下Excel文件:
我想要的是是一个简单的解决方案(最好是单行),可以读取Excel,以便将日期转换为str
(或至少int
) ,空白值为nan
或nat
或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
s,则其他值不会被强制为{{1但是,在我的情况下,大多数列都有float
空白,因为大多数股票都有一个ipo日期但尚未退市。)
据我所知,我尝试了delist_date
关键字arg,它给了我
dtype=str
看起来不错?是的,日期现在是df
Out[10]:
001002.XY 600123.AB 123456.YZ 555555.GO
ipo_date 20100203 20150605 nan 20090501
delist_date nan 20170801 nan nan
,但有一点荒谬的是,str
现在变成文字字符串了! E.g。
nan
这会让我不得不稍后添加一些奇怪的内容,例如df.iloc[1, 0]
Out[12]:
'nan'
。
我没有尝试df.replace
因为它需要逐列指定数据类型,而我正在使用的实际excel文件是一个非常长的电子表格(约3k列)。我也不想在excel中转置电子表格。
有人可以帮忙吗?提前谢谢。