博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于pandas精度控制
阅读量:7015 次
发布时间:2019-06-28

本文共 1445 字,大约阅读时间需要 4 分钟。

最近使用pandas处理一批数据,数据中包含几个columns,它们的数据精度,例如

3.25165,1451684684168.0,0.23

处理完之后保存csv时发现,1451684684168.0被保存为1.45168e+12,我需要完全保存数据信息

Google一番发现pandas自带了如下函数:

DataFrame.to_csv('out.csv', float_format = '%.3f')

由于我的文件中包含不同精度数据,不能一概而论,所以初步想法是想把1451684684168.0转换为str处理,

有以下几种办法:

1.df['id'].apply(str)或者df['id'].astype(basestring)

这个方法可以将某个column变为str,缺点是不能控制精度,转出来还是1.45168e+12

2.pandas.DataFrame.to_string或者pandas.Series.to_string

这个两种方法可以将整个DataFrame或者Series转成str,参数很多,而且可以控制精度。

需要注意的是参数formatters和float_format,它们两的参数是以函数的形式给出的

######################################################

myformatter = lambda x: '%4.1f' % x

formatters = {'A': myformatter}
float_format = myformatter

######################################################

由于我使用的是pd(0.17.1)版本,与官方的0.19.2的不同,

pandas.Series.to_string参数中缺少index

所以我将Series转换为DataFrame处理,下面给出代码:

#####################################################

Tpart1 = dfN.iloc[:,0:12]

Tpart2 = dfN.iloc[:,12]
Tpart3 = dfN.iloc[:,13:16]

myformat = lambda x: '%.0f'%x   # #保留整数

str1 = pd.DataFrame(Tpart2, columns=['time'])
str2 = str1.to_string(float_format = myformat, index = False, header = False)  # #去除column name以及index name
str3 = str2.split('\n')
Tpart2 = pd.DataFrame(str3, columns=['time'])   ##重新变为DataFrame

npart1 = pd.concat([Tpart1, Tpart2, Tpart3], axis = 1)  # #合并

#######################################################

pandas的向量处理速度还是很快的,程序中尽量不使用for语句来逐一处理。

 

转载于:https://www.cnblogs.com/AndersonX/p/6305545.html

你可能感兴趣的文章
OAuth 2.0 - dotNetDR_OAuth2微博API访问组件使用教程
查看>>
网络管理与相关应用
查看>>
文件内容查阅(转)
查看>>
.net socket在win2008下的吞吐性能报告
查看>>
[转]深入浅出Java设计模式之备忘录模式
查看>>
抽象类到底是个什么玩意
查看>>
Windows Mobile 消除安装程序时显示“此程序来自未知发行者…“提示的方法
查看>>
正则表达式周二挑战赛 - 第十一周
查看>>
How many people have ipad II(数学)
查看>>
自适应对话框的背景位图&限制大小的对话框
查看>>
分享:centos daemon make and install
查看>>
javascript对话框
查看>>
机器学习各类工具weka、scikit-learn等各项指标的对比
查看>>
安全编程-c++野指针和内存泄漏
查看>>
2012时光之末,2013时光之初
查看>>
大规模web服务开发技术(转)
查看>>
vc6.0执行程序正确而debug版和release版运行错误
查看>>
淘宝褚霸谈做技术的心态
查看>>
Java Hibernate 二级缓存配置及缓存的统计策略
查看>>
【sas notes】sas9.2安装
查看>>