excel表2 的数据,逐列导入表1,分别计算出数据在表3输出?
3条回答 默认 最新
- 溪风沐雪 2022-06-23 09:02关注
给一种编程解决方案,基本思路是把先读取表二,把表二中有数据的列提取出来做为输入数组,根据不同列的输入计算出对比数据列,根据题主给的公式,运算数据前两个为20和40(题主公式中40也是计算出来的,按照公式,这个必然是40,不受其他影响,所以直接给定40),第三个开始需要参考结果列计算,结果列数据通过同一行前三组数据计算得出,编程代码如下,其中test.xlsx为表二,test1.xlsx是结果数据,即表三
import pandas as pd df = pd.read_excel('test.xlsx') datas = [] for c in df.columns: lst = [int(d) for d in df[c] if not pd.isna(d)] if len(lst)>0: datas.append(lst) com_datas = [] for data in datas: cd = [data[i+1] if i<len(data)-1 and data[i]==data[i+1] else data[i] for i in range(len(data))] com_datas.append(cd) calc_datas = [] result_datas = [] for i in range(len(datas)): data = datas[i] com_data = com_datas[i] calc_data = [] result_data = [] for j in range(len(data)): if j==0: calc_data.append(20) elif j==1: calc_data.append(40) else: #=IFS(E5=-160,320,E5=-320,640,E5=-640,0,E5=40,80,AND(E4=-40,E5=-40),80,AND(E4<0,E5=-80),160,TRUE,40) if result_data[j-1]==-160 or result_data[j-1]==-320: calc_data.append(result_data[j-1]*-2) elif result_data[j-1]==-640: calc_data.append(0) elif result_data[j-1]==40 or (result_data[j-1]==-40 and result_data[j-2]==-40): calc_data.append(80) elif result_data[j-1]==-80 and result_data[j-2]<0: calc_data.append(160) else: calc_data.append(40) if j<len(data)-2: result_data.append((-1)**(com_data[j]+data[j+2])*calc_data[j]) else: result_data.append(-1*calc_data[j]) calc_datas.append(calc_data) result_datas.append(result_data) print(data[1]) print(com_datas[1]) print(calc_datas[1]) print(result_datas[1]) df1 = pd.DataFrame() maxlen = max([len(rd) for rd in result_datas]) for i in range(len(result_datas)): while len(result_datas[i])<maxlen: result_datas[i].append(float('nan')) df1['结果'+str(i+1)] = result_datas[i] df1.to_excel('test1.xlsx')
表二:
表三:本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 matlab图像高斯低通滤波
- ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
- ¥15 钢筋实图交点识别,机器视觉代码
- ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
- ¥50 400g qsfp 光模块iphy方案
- ¥15 两块ADC0804用proteus仿真时,出现异常
- ¥15 关于风控系统,如何去选择
- ¥15 这款软件是什么?需要能满足我的需求
- ¥15 SpringSecurityOauth2登陆前后request不一致
- ¥15 禅道二次开发编辑版本,上传不了发行包