伙伴遇到一个关于excel导入数据到python中,日期变成数字而不是日期格式的问题。第一反应这个数字应该是excel里面的时间戳类似的,所以我就实验增加一天是不是对应的数字就加1。最后证明了我的想法,这样就可以倒推excel里面的数字日期是从那一年开始计数的。
我们先看一下excel本身打开数据的样子:
在这里插入图片描述
我们再看看python直接导入后日期的样子:
在这里插入图片描述
那我们的目标就是将字段列名的日期数据替换成标准的日期格式,具体的思路是:
1、先用excel实验2018-11-02对应的日期时间戳是43406。
2、我再用2018-11-02减43406看看是从那一年开始计算的,所以得出结论是1899-12-30。
3、那最后要达成目标就只需要时间戳+1899-12-30就等于对应的当前日期

这是替换后的列名
在这里插入图片描述
以下代码是将excel时间戳转化成标准日期,并替换原有列名的具体步骤:

import pandas as pd
import datetime
data=pd.read_excel(r'xxxx.xlsx')
col=list(data.columns)#获取列名
print(col)
col_new=[]
def date(dates):#定义转化日期戳的函数,dates为日期戳
    delta=datetime.timedelta(days=dates)
    today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta#将1899-12-30转化为可以计算的时间格式并加上要转化的日期戳
    return datetime.datetime.strftime(today,'%Y-%m-%d')#制定输出日期的格式
for x in range(len(col[2:9])):#将excel的时间戳循环替换
    col_date=date(col[2:9][x])
    col_new.append(col_date)
col[2:9]=col_new
data.columns=col
                                    不知道大家有没有遇到过,在使用Python读取 Excel的行列或是单元格时,如果其内容是日期格式的,而打印出来后却不是日期,而是一串数字,如下图: 我们期望这个日期解析出来是:1919/1/20以及2019/11/20,而结果却是数字6960.0和43789.0,这是什么原因呢?这个数字又是什么呢? 其实这是以1900年为原点,到指定日期经过的天数。想要将数字换为日期,可以通过 xlrd 中的...
                                    Java中数字到时间的换
作为一名刚入行的开发者,你可能会遇到需要将数字换为时间的情况。在Java中,这通常涉及到对日期和时间的处理。下面,我将通过一篇文章来教你如何实现这一功能。
换流程
首先,让我们通过一个简单的流程表来了解整个过程:
                                    问题描述:在读取excel有时会出现日期变为数字,如47123,这是由于表格的设置,导致我们读取到的日期变成了日期序列(date sequence),此时我们需要编写函数来完成日期序列到日期换。采用xlrd库可同时处理xlsx于xls文件,注意此时的版本应为1.2.0,版本过高则无法处理xlsx文件。此时成功将日期序列换为日期,可在date_parse函数中对所希望保留的日期跨度进行调整。
目标:使用Django从Excel中读取数据,写入数据库。
出现的问题:Excel里面有几列是时间,大致格式为xxxx年xx月xx日,当用panda读取到那列数据时,得到的是一串数字(浮点数)。
该列数据对应到Django model中的Class属性类型是Date和Datetime。
2 解决方案
def date(para):
    delta = pd.Timedelta(str(para)+'days')
    time = pd...
                                    本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。
ctype: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype =sheet1.cell(iRow,iCol).ctype
参考示例如下:
1.准备一个Excel文件,文件名Book1.xlsx
1.https://www.cnblogs.
                                    excel 文件内容如下:读取excel内容:import xlrdfrom datetime import datetimefrom xlrd import xldate_as_datetime, xldate_as_tuplefilename = r'C:\Users\Administrator\Desktop\niceloo\10月\流水.xlsx'rbook = xlrd.open_wor...
excel_data = xlrd.open_workbook(excel_path)
# 获取第一个sheet页
sheet = excel_data.sheet_by_index(0)
# 读取数据
for i in range(0, rows):
     for j in range(0, cols):
         pr...
                                    Python处理数据很方便,而且写成程序之后可以循环使用,不用像Excel那样还需要手动操作。所以平常会用Python读取Excel文件进行处理,但有时候会碰到一个问题,就是在Excel里显示得好好的日期,怎么读到Python里就是数字了?(黑人问号脸)ExcelPython读取后额,原因百度吧,我也说不清。。。这里说一下处理方法。反正遇到这个问题的时候,也百度了好久,然后忘了在哪里看到一段代码...
                                    xlrd模块中有2个函数,可以把Excel表格中日期错误识别成的数字解析成正确日期。
from xlrd import xldate_as_tuple, xldate_as_datetime
# 返回的是datetime类型
xldate_as_datetime(31528,0)
datetime.datetime(1986, 4, 26, 0, 0)
# 返回的是元组类型
xldate_as_tuple(31528.5,0)
(1986, 4, 26, 12, 0, 0)
# 整数和小数都可以,