python3数据分析—运用xlrd读取xls文件,读取文件中日期显示为浮点数解决办法

时间: 2023-07-29 admin 互联网

python3数据分析—运用xlrd读取xls文件,读取文件中日期显示为浮点数解决办法

python3数据分析—运用xlrd读取xls文件,读取文件中日期显示为浮点数解决办法

文章目录

    • 开发工具
    • 问题代码
    • 问题分析
    • 解决代码
    • 运行结果
    • 总结

开发工具

python版本:Python 3.6.1

python开发工具:JetBrains PyCharm 2018.3.6 x64

第三方库xlrd安装→pip install xlrd -i /

excel测试数据.xls→文件下载地址


(访问密码:8835)

问题代码

import xlrd
from jieba import xrange
from pprint import pprint

filename = 'excel测试数据.xls'

wb = xlrd.open_workbook(filename=filename)
ws = wb.sheet_by_name('Sheet1')
dataset = []
for r in xrange(ws.nrows):
    col = []
    for c in range(ws.ncols):
        col.append(ws.cell(r, c).value)
    dataset.append(col)
pprint(dataset)

问题分析


在文件日期格式为yyyy/MM/dd HH:mm:ss,通过python读取文件中日期信息变为了浮点类型的数据,在读取是需要做相应的处理

解决代码

from datetime import datetime
import xlrd
from jieba import xrange
from pprint import pprint
from xlrd import xldate_as_tuple


filename = 'excel测试数据.xls'

wb = xlrd.open_workbook(filename=filename)
ws = wb.sheet_by_name('Sheet1')
dataset = []
for r in xrange(ws.nrows):
    col = []
    for c in range(ws.ncols):
        if ws.cell(r, c).ctype == xlrd.XL_CELL_DATE:  # 判断单元格类型是否为日期格式,如果是进行如下操作
            data_value = xldate_as_tuple(ws.cell(r, c).value, datemode=0)
            col.append(datetime(*data_value).strftime('%Y/%m/%d %H:%M:%S'))
        else:
            col.append(ws.cell(r, c).value)
    dataset.append(col)
pprint(dataset)

运行结果

总结

运用xlrd读取excel文件时,需要注意日期格式的读取;直接读取读出来内容为浮点数,这里需要对单元格类型作日期类型判断,如果是单独处理一下日期,将日期转为我们需要的形式