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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 【Linux-vim】Linux 修改文件内容

    【Linux-vim】Linux 修改文件内容1、cd到相应的文件夹下2、查看linux文件内容:命令:catxxxx文件夹3、修改文件夹Vimxxxx文件夹3.1输入字母:i修改文件内容3.2自己要改什么,手动改好3.3退出修改命令,电脑端点击:esc3.4输入:wq!或者:wq就可以了3.5再用命令:catxxxx文件夹,查看一下修改的和你预计的是否一致…

  • 设计模式之二十四:訪问者模式(Visitor)[通俗易懂]

    设计模式之二十四:訪问者模式(Visitor)

  • 网页文字不可以复制_html5实现复制粘贴

    网页文字不可以复制_html5实现复制粘贴大家在上网的时候是否曾经遇到过网页文字无法复制的情况呢?为什么网页文字无法复制呢?或者问如何把不能复制的网页文字复制下来呢?其实,网页文字不能复制原因大部分是网页的制作者为了防止网页内容被被人盗用而设置了复制限制,在网页中嵌入了Javascript语言,通过编程的手段屏蔽了复制功能。下面小编给大家分享下如何把被限制复制的网页文字复制下来。本方法以IE浏览器为例子,打开IE浏览器链接到需要访问的网页…

    2022年10月13日
  • SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别

    SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中。由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件、控制等各方面并不是专门做SLAM的工程师),加上汇报的内容较多,因此在分享中我尽量使用简介的口语,而不出现复杂的公式。所以本文面向的是3D-slam方向的初学者。内容在整理中参考了许多链接,将放在最后。在文章结束后,我会把原PPT放在上面,需要者自取。另外打个广告,在slam方向有实习意愿的,请发送简历至zkyy8

  • 报错415怎么解决_服务器请求415

    报错415怎么解决_服务器请求415415错误

    2022年10月31日
  • hive中的数据类型:基本数据类型,集合数据类型_hive数据库类型

    hive中的数据类型:基本数据类型,集合数据类型_hive数据库类型数据类型1.Hive中的数据类型分为两类:基本类型和复杂类型2.基本类型包含:tinyint,smallint,int,bigint,float,double,boolean,string,timestamp,binary3.复杂类型:array,map和structa.array:数组类型,对应了Java中的集合或者数组。原始数据jack,johnlucy,miketom,bob,cindylily,helen,mary,alexfrank,grace,iran,edentony

发表回复

您的电子邮箱地址不会被公开。

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