python强制类型转换astype

python强制类型转换astype在进行将多个表的数据合并到一个表后,发现输出到EXCEL表的数据发生错误,数值型数据末尾都变成了0。这是因为excel数据超过11位,自动以科学计数法显示,其最大处理精度为15位,超过15位,以后数字自动变0。找了一些解决方法,发现用.astype(‘数据类型’)还是挺方便的。我在输出时,将数值型的数据(int)转化成了字符串(str)。使用方法:df.astype(‘数据类型’)  …

大家好,又见面了,我是你们的朋友全栈君。

在进行将多个表的数据合并到一个表后,发现输出到EXCEL表的数据发生错误,数值型数据末尾都变成了0。这是因为excel数据超过11位,自动以科学计数法显示,其最大处理精度为15位,超过15位,以后数字自动变0。找了一些解决方法,发现用.astype(‘数据类型’)还是挺方便的。我在输出时,将数值型的数据(int)转化成了字符串(str)。

使用方法:

  • df.astype(‘数据类型’)                        #改变整个df的数据类型
  • df[‘列名’].astype(‘数据类型’)              #仅改变某一列的数据类型

先来个没有使用astype转换的输出结果:

python强制类型转换astype

可以看到 订单号 和 转单号码 都以科学计数法显示。其中订单号为18位,超过15位的显示为0。转单号码为12位,数值正确。

python强制类型转换astype

python强制类型转换astype

 插入 num=num.astype(‘str’)这行代码,将数据转为str,输出如下:

python强制类型转换astype

全部代码如下:

#清洗台运货态表
import pandas as pd
import os
file=os.listdir(r'C:\Users\Administrator\Desktop\货态数据清洗\台运联翘状态表')[0]#读取指定文件夹下的第一个表名
sheets=['香港','泰国','台灣']
D=[]
E=[]
for x in sheets:
	data=pd.read_excel('C:/Users/Administrator/Desktop/货态数据清洗/台运联翘状态表/'+file,sheet_name=x)
	data.rename(columns={'訂單號':'订单号','轉單號碼':'转单号码','狀態':'状态'},inplace=True)
	d=data[['订单号','转单号码','状态']]
	#len(d)输出d的行数
	#d.shape[0]#求行数
	#d.shape[1]#求列数
	d['地区']=x
	d.astype('object')
	D.append(d)
num=pd.concat(D,axis=0)#合并list表D中的元素
num=num.astype('str')#将整个dataframe都转换为str类型
# num['订单号']=num['订单号'].astype('str')
# num['转单号码']=num['转单号码'].astype('str')
print(num.info())
num.to_excel(r'C:\Users\Administrator\Desktop\货态数据清洗\台运状态汇总.xlsx',index=False)

除了用astype进行类型转换,也可以自定义函数来批量修改数据类型(通过int(),str()等直接转换)。还可以用Pandas的一些辅助函数(如to_numeric()、to_datetime())。知乎上也有人做了详细的描述,感谢作者。链接如下:

https://zhuanlan.zhihu.com/p/35287822

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131810.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • EL表达式判断Map是否为空和map的取值[通俗易懂]

    EL表达式判断Map是否为空和map的取值[通俗易懂]判断Map是否为空1.在JSP页面中引入sun的核心标签库   @ taglib uri=”http://java.sun.com/jstl/core_rt” prefix=”c” %>2.在JSP页面中引入sun的函数标签库   @ taglib uri=”http://java.sun.com/jsp/jstl/functions”  prefix=”

    2022年6月24日
  • ToF相机学习笔记之基本知识

    ToF相机学习笔记之基本知识ToF相机属于一种非接触式光学传感器,通过计算发射激光的飞行时间获取对应像素的深度信息。就非接触式距离测量方法而言,其分类可用下表表示如下:1.1ToF传感器基础一个逐点式的ToF传感器采用了雷达原理估计场景点的径向距离。简单来说,就是通过计算光从发射到经场景点反射后的飞行时间。为了测量整个场景表面而不是几个场景点,很多距离测量系统集成了一个逐点式ToF传…

    2022年5月20日
  • mac linux 虚拟机(虚拟机的ubuntu怎么连不上网)

    查看原文1.设置虚拟机网格为 NAT模式2.在Mac系统里打开终端(快捷键:Ctrl+Alt+T),输入ifconfig,查看Mac机的ip3.进入虚拟机设置网络,手动配置IPv4,xxx.xxx.xxx.2是固定的路由及DNS的ip4.关闭网络再打开即可访问外网5.结果

    2022年4月15日
  • linux目录结构详解_简述linux系统中的目录结构

    linux目录结构详解_简述linux系统中的目录结构前言平常linux系统用的也不少,那么linux下的每个目录都是用来干什么的,小伙伴们有仔细研究过吗?让我们来了解下吧Linux系统目录结构登录系统后,在当前命令窗口下输入命令:[root@

    2022年7月28日
  • Linux查看网卡带宽[通俗易懂]

    Linux查看网卡带宽[通俗易懂]ifconfig查看网卡信息执行命令:ethtool网卡名称,例:ethtooleth1输出内容如下:Settingsforeth1:Supportedports:[FIBRE]Supportedlinkmodes:1000baseT/Full10000baseT/FullSupportedpauseframeuse:Symmetr..

    2022年10月19日
  • python 读写txt文件乱码问题

    从报错讲起:UnicodeDecodeError:’gbk’codeccan’tdecodebyte0xaainposition2:illegalmultibytesequence出现这个错误一般是由于打开文件时,没有指定编码引起的,比如下面代码withopen(‘../corpus.txt’,mode=’r’)asf:解决方法很简单,为其指定…

    2022年4月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号