使用python中pandas的read_excel函数将日期保留为字符串

Python 2.7.10
0.17.1——函数读取excel
尝试了pyexcel 0.1.7+pyexcel xlsx 0.0.7——函数get_records()

在Python中使用pandas时,是否可以读取excel文件(格式:xls | xlsx),并将包含日期日期+时间值的列保留为字符串,而不是自动转换为日期时间.日期时间时间戳类型

如果无法使用pandas,是否有人可以建议另一种方法/库来读取xls | xlsx文件并将日期列值保留为字符串

对于pandas解决方案,尝试的df.info()和结果日期列类型如下所示:

&gt&燃气轮机&燃气轮机;df.info()
<类“pandas.core.frame.DataFrame”>
INT64索引:117个条目,0到116
列:176个条目,挖掘到索引
数据类型:datetime64[ns](2)、float64(145)、int64(26)、object(3)
内存使用率:161.8+KB
&燃气轮机&燃气轮机&燃气轮机;类型(df[“开始日期”][0])
Out[6]:pandas.tslib.Timestamp
&燃气轮机&燃气轮机&燃气轮机;类型(df['End Date'][0])
Out[7]:pandas.tslib.Timestamp

尝试/方法1:

def read_as_数据帧(文件名,ext):
作为pd进口熊猫
如果ext in('xls','xlsx'):
#问题:日期列自动转换为datetime.datetime或timestamp!
df=pd.read_excel(文件名)#不需要的日期列已转换!
返回df、name、ext

尝试/方法2:

将熊猫作为pd导入
#将datetime导入为datetime
#parse_date=lambda x:datetime.strtime(x,“%Y%m%d%H”)
parse_date=lambda x:x
elif ext in('xls','xlsx',):
df=pd.read\u excel(文件名,解析日期=False)
date_cols=[df.columns.get_loc(c)for c in df.columns如果c in('Start date','End date')]
#问题:日期列自动转换为datetime.datetime或timestamp!
df=pd.read\u excel(文件名,解析日期=date\u cols,日期解析日期=parse\u date)

也尝试过pyexcel库,但它具有相同的自动魔法转换行为:

尝试/方法3:

将pyexcel导入为pe
导入pyexcel.ext.xls
导入pyexcel.ext.xlsx
t0=时间。时间()
如果ext==“xlsx”:
记录=pe.get\u记录(文件名=文件名)
记录中的记录:
打印(“开始日期=%s(类型=%s),结束日期=%s(类型=%s)”%
(记录['开始日期],
str(类型(记录['开始日期]),
记录[“结束日期”],
str(类型(记录['结束日期]))
)

我遇到了一个相同的问题,除了熊猫奇怪地将一些单元格转换成日期时间。我最终手动将每个单元格转换为字符串,如下所示:

定义日期(x):
如果pd.isnull(x):
返回x
尝试:
返回x.strftime(“%d/%m/%Y”)
除属性错误外:
返回x
除例外情况外:
提升
对于“可能的日期”列列表中的i:
df[i]=df[i]。应用(未注明日期)

发表评论