工程中检测记录表中部分数据需要折半处理,用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
暂无评论内容