2个dataframe,df1的每一列分别乘以df2的某一列

Notes:df1的每一列分别乘以df2的某一列,得一列一列如:df1.loc[:,0]*df2.loc[:,1 ]

            # df1 *df2.loc[:,1 ],会导致df1每一列的全部值,乘以df2某一列里按顺序的单一数字
            for temp_port in col_list_port: 
                # 股票成本
                df_port_stock_cost.loc[:, temp_port] = df_ashare_adjclose.loc[:, temp_date ]
                # 组合权重乘以账户总资产,理论市值!
                df_port_stockvalue.loc[:, temp_port] = df_ashare_ana.loc[:, temp_port] * df_port_all.loc[:, temp_date ] *para_max_stock_pct  
                # 股票数量,向下取整数
                df_port_stock_num.loc[:, temp_port] = df_port_stockvalue.loc[:, temp_port] / df_port_stock_cost.loc[:, temp_port] 
                df_port_stock_num.loc[:, temp_port] = df_port_stock_num.loc[:, temp_port].astype(int )
                # 组合权重乘以账户总资产,实际市值
                df_port_stockvalue.loc[:, temp_port] = df_ashare_ana.loc[:, temp_port] * df_port_all.loc[:, temp_date ] 
好的,我可以帮你解决这个问题。首先,我们需要使用Python中的pandas库来读取和操作Excel文件。然后,我们可以使用pandas中的DataFrame对象来存储数据和执行数学运算。 以下是实现该功能的代码示例: ```python import pandas as pd # 读取两个Excel文件 df1 = pd.read_excel('file1.xlsx') df2 = pd.read_excel('file2.xlsx') # 指定要操作的列号和权值 col_nums = [0, 2, 4] # 假设要操作第1、3、5列 weights = [0.5, 1.0, 1.5] # 对应的权值 # 对每个文件进行操作 for df in [df1, df2]: # 选取指定列并乘以对应权值 selected_cols = df.iloc[:, col_nums] multiplied_cols = selected_cols.multiply(weights) # 计算每行的和 row_sums = multiplied_cols.sum(axis=1) # 将结果存入新的一列 df['New_Column'] = row_sums # 将两个DataFrame对象合并并保存到新的Excel文件中 merged_df = pd.concat([df1, df2], ignore_index=True) merged_df.to_excel('result.xlsx', index=False) ``` 在此代码中,我们首先使用`pd.read_excel()`函数读取两个Excel文件,并将它们存储在DataFrame对象中。然后,我们使用`iloc`属性选取要操作的列,并使用`multiply()`函数将它们与对应的权值相乘。接下来,我们使用`sum()`函数计算每行的和,并将结果存储在一个新的列中。最后,我们使用`concat()`函数将两个DataFrame对象合并,并使用`to_excel()`函数将结果保存到新的Excel文件中。 请注意,此代码示例中假设要操作的列号是连续的数字,并且权值的数量等于要操作的列数。如果要操作的列号不是连续的数字,或者要操作的列数与权值的数量不相等,那么需要稍微修改一下代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值