咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公


python办公自动化 -- pandas数据分析专栏

使用数据分析的强大模块pandas的

read_excel()函数读取excel表格

是非常方便实用的

但是,时不时也会遇到读取左起带0的数字

例如001、000333222等

我们希望read_excel()读取后还是原来的样子

不要省去了左边的0

平时读取左边带0的数字


下图excel表格A列的单元格格式是文本格式的,这点很重要!

然后输入带0数字如下所示:

使用read_excel()读取,不设置dtype参数,结果如下:

左边0没有被读取

>>> df.dtypes

a int64

函数read_excel()默认会自动识别数据列,将其转为最适合的数据类型int。

下面,我们加上参数dtype=str,强制将所有列作为字符串格式读取

结果如上所示,读取了左起带0的数字。

或者像下面这样设置参数,也是可以读取了左起带0的数字。

>>> df = pd.read_excel('e:/1.xlsx',dtype=object)

或者>>> df = pd.read_excel('e:/1.xlsx',converters={'a':str}) 这里a是表格中标题的列名称


如果有很多个列或者只需指定的列,也可以这样设置:

>>> zd = {x:str for x in df.columns}

>>> df = pd.read_excel('e:/1.xlsx',converters=zd)

这里zd使用了字典解析式,df.columns可以换成指定列名称组成的列表等序列。当然,也可以如下设置,指定某些列转为指定的数据类型:

>>> zd = {'a':str} 或者 zd = {'a':str, 'd':np.int32}

>>> df = pd.read_excel('e:/1.xlsx',dtype=zd)


以上方法,都可以将左边带0的数字读取出来。

但是,我们遇到了一种情况,即使使用上面的任何一种方法,都无法将左边带0的数字使用read_excel()读取出来。

这又是什么情况呢?

奇怪的左边带0数字

我们看下面的表格左边带0数字

>>> df = pd.read_excel('e:/1.xlsx',dtype=str)

设置参数,强制所有列都是字符串格式

但是,读取后前2个数字被去掉了0,

第3个数字则保留了左边的0,这是啥情况呢?

为什么设置了参数不起作用呢?

其实,原因就出在表格的单元格格式!

前2个带0数字,其单元格格式是自定义的,且格式类型被自定义为0000格式,即单元格占4个字符,不足字符位数左边补0。

尽管第3个数字也设定了0000格式,但是由于其之前是文本格式,当再被设置为0000格式时,无法自动转为0000格式,其单元格左上角有1个灰色的三角,表明其还是文本格式的。当鼠标双击它,才会转为0000格式。

而上面的2个数字,是将单元格设置0000格式后,才输入的数字,所以,在输入时自动就成为0000格式。这种自定义格式的单元格,使用read_excel()和设置参数,无法将其左边的0读取!

如何读取这种奇怪的左边带0数字?

在表格中,将0000格式的数据单元格设置为文本格式,可行吗?

没效果!当将这些数据列设为文本格式后,左边0都消失了!


办法1:将0000格式的数据拷贝到记事本,在记事本中都是带0的数字。之后,将表格中的0000格式数据设置为文本格式,之后,将记事本中的带0数字拷贝粘贴到表格之中,就成为文本格式的带0数字了。

效果:可行!之后,再用read_excel()进行读取带0数字。


办法2:直接读取数据,之后使用str.rjust()函数补齐左边的0

效果:可行。如下所示。但是,当带0数字的位数不一致的时候,这种方法就不行了。下面例子假设所有数字都是4位的,不足位数,左边补齐0。


办法3:将表格文件保存为csv格式,之后使用read_csv()函数读取

效果:可行。通用办法!如下所示。后面必须设置参数dtype。

更多python办公自动化案例和经验

请继续关注我们的公众号和头条号

后期会持续进行更新

“白领服务工作室”的系列视频课如下:

Python办公自动化---Python入门课程

Python办公自动化---Python进阶课程

Python办公自动化---正则表达式

Python办公自动化---数据分析

Python办公自动化---网络爬虫

Python办公自动化---Excel表格专栏

Python办公自动化---Pdf专栏

Python办公自动化---Word专栏

Python办公自动化---图像专栏

Excel/WPS表格 --- 数据处理

如需学习以上视频课程,敬请留言!

作者 | 小白

来源 | 原创

编辑 | 白领服务工作室