python中excel数据表数据小数3位转2位

工程中检测记录表中部分数据需要折半处理,用excel进行条件判断,符合条件的数据折半,但又有新问题,数据不要3位小数,而且求和后要求和没处理以前保持一致。用python进行了一下处理,代码如下

import pandas as pd
文件名 = '11.xlsx'
文件列表 = pd.read_excel(文件名)
for xm_file in 文件列表.index:        
    sjb_name = 文件列表.at[xm_file,'数据表']
    sjb = pd.read_excel(sjb_name,sheet_name="检测与评估信息",header=None,skiprows=3,usecols=[10,15,20,21,27,28],names=['起始井编号','结束井编号','起点','终点','管段长度','检测长度'])
    for r in sjb.index:
        cd = sjb.at[r,'检测长度']
        s_cd = str(cd)
        zs,xs = s_cd.split('.')
        if len(xs) > 2 and xs[2] == '5':                 
            截取一位 = float(s_cd[:len(s_cd)-1])
            进位 = 截取一位 + 0.01
            sjb.at[r,'检测长度'] = 进位
            sjb.at[r+1,'检测长度'] = 截取一位
            sjb.at[r,'管段长度'] = 进位
            sjb.at[r+1,'管段长度'] = 截取一位
        print(" %d 行完成 %f" %(r+1,cd))
    sjb.to_excel(sjb_name)

没有使用round()函数,发现这个函数处理后数据是不能满足结果一致的要求的,利用的是有3位小数的数据是折半处理后的,所以是成对出现的,将数据进行一个进位和另一个去掉一位小数的处理。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容