我正在尝试运行一个优化问题,我似乎无法解决。我是Python的新秀。
我有一个带有8760个数字(0-1)的数据框。我需要将此数组中的每一行乘以一个因子,然后将该数组求和。这个总数应等于x,例如50,000。我的代码示例是。
pp.prob = pp.LpProblem("P2g", pp.LpMinimize)
SolarCap = pp.LpVariable("SolarCap", lowBound=0)
pp.prob += SolarCap * 5
for i,j in enumerate(SolverWS['Solar']):
x = j * SolarCap
x = x + x
pp.prob += x == P2gprod
status = pp.prob.solve()
答案 0 :(得分:0)
如果我理解正确,则需要将由n个条目组成的熊猫数据帧乘以每行相同的因子,然后将结果数据帧求和。
您可以使用Pandas Dataframes(文档here)的 mul()方法
关于元素的求和,您所要做的就是在数据框 .values 属性
上调用 sum()这是一个简单的例子
import numpy as np
import pandas as pd
# Create a random dataframe of 10 columns and 876 rows with random float values between 0 and 1
df = pd.DataFrame(np.random.uniform(0,1,size=(876, 10)))
print(df)
print(df.values.sum())
other = 10
# See https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.multiply.html
df1 = df.mul(other)
# Alternatively, for just multiplying the whole dataframe
#df1 = df * 10
print(df1)
print(df1.values.sum())