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 求解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥15 maple软件,用solve求反函数出现rootof,怎么办?
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题
- ¥20 在虚拟机的pycharm上
- ¥15 jupyterthemes 设置完毕后没有效果