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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 嘘…偷偷教你破解“朋友圈三天可见”「建议收藏」

    嘘…偷偷教你破解“朋友圈三天可见”「建议收藏」点击上方[全栈开发者社区]→右上角[…]→[设为星标⭐]在微信公开课上,腾讯高级执行副总裁、微信事业群总裁张小龙说:朋友圈状态设置三天可见的人数超过了一亿人,这个开关是微信里使用率最…

    2022年4月28日
    93
  • Laravel实现找回密码及密码重置的例子

    Laravel实现找回密码及密码重置的例子

    2021年10月24日
    48
  • navicat 15 for mysql.ink激活码【在线破解激活】

    navicat 15 for mysql.ink激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    67
  • [Halcon&标定] 单相机标定「建议收藏」

    [Halcon&标定] 单相机标定「建议收藏」为什么要进行单相机标定?广义:畸变矫正和一维和二维测量1)畸变矫正:    在几何光学和阴极射线管(CRT)显示中。畸变是对直线投影的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。那畸变简单来说就是一条直线投影到图片上不能保持为一条直线了。这是一种光学畸变(opticalaberration)。畸变是一种相差…

    2022年5月28日
    27
  • vmware中安装centos_虚拟机系统安装教程

    vmware中安装centos_虚拟机系统安装教程一、前言最近有网友反应初学Linx不会安装,找了许多教程不是太全面,总会遇到一些要不是启动不了,要不是连不上网,各种问题,为了让大家能够顺利的安装,小乐写了一个非常详细的教程,让大家少入坑。二、背

    2022年8月5日
    3
  • nginx和apache的区别[通俗易懂]

    nginx和apache的区别[通俗易懂]简单的说apachehttpd和nginx都是web服务器,但两者适应的场景不同,也就是两者专注于解决不同的问题。apachehttpd:稳定、对动态请求处理强,但同时高并发时性能较弱,耗费资源多。nginx:高并发处理能力强、擅长处理静态请求、反向代理、均衡负载。在这篇文章详细列出了apache与nginx的13个异同点,下面我们来一一分析其原理。1、nginx相对于apache的优点:轻量级,同样起web服务,比apache占用更少的内存及资源,抗并发,nginx处理请求是异

    2022年6月13日
    40

发表回复

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

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