Python:Pandas把csv中的0去掉了、Pandas读取文件时不去掉前面的0、解决Pandas读取文件丢失数据前的0问题

pandas.read_excel官网地址
https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html#pandas.read_excel

在我们处理数据时,有时会碰到csv或excel中,有时某列数据值会“000+1到9数字”,在用python read_csv读取数据时,往往会将前面“000”给去掉。

本文讲解一下如何不去掉前面的0。以下几种方法都能保证读取后保留为原值,亲测有效!

一、问题场景

问题描述: 使用pandas读取文件时,默认把数据前面的0去除掉了,怎样能保留excel中的原值。

测试文件:
在这里插入图片描述

测试代码:

read_file.py代码如下:

# coding=utf-8

import pandas as pd

data = pd.read_excel('D:\WorkSpace-Python\Test\demo.xlsx')

print(data)

执行结果:

在这里插入图片描述

二、问题原因

问题分析:
pandas.read_excel默认dtype=None, 它将根据数据推断每列的数据类型。若该列全是数字,则默认为数字类型,所以把前面的0都去除了。

代码验证:

打印读取后的数据类型,验证pandas在读取文件时默认把数字当做数字类型了。

# coding=utf-8

import pandas as pd

data = pd.read_excel('D:\WorkSpace-Python\Test\demo.xlsx')

print(data)
print(data.dtypes)

在这里插入图片描述

三、解决方法

3.1、方法一:添加dtype=object

设置excel文件格式为object

# coding=utf-8

import pandas as pd

data = pd.read_excel('D:\WorkSpace-Python\Test\demo.xlsx',dtype=object)

print(data)

在这里插入图片描述

3.2、方法二:添加dtype=str

设置excel格式都为字符串

# coding=utf-8

import pandas as pd

data = pd.read_excel('D:\WorkSpace-Python\Test\demo.xlsx',dtype=str)

print(data)
print(data.dtypes)

在这里插入图片描述

3.3、复杂设置

在某些情况下,我们不能把excel的格式整体设置为字符串类型,可能某列需要设置为数字类型,某列设置为字符串类型。

# coding=utf-8

import pandas as pd

data = pd.read_excel('D:\WorkSpace-Python\Test\demo.xlsx',dtype={'序号ID':int,'标题A':str,'标题B':object})

print(data)
print(data.dtypes)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五月天的尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值