Pandas如何根据多列间逻辑规则生成能源实际售价新列
能源实际售价计算实现方案
首先明确原数据字段和逻辑中概念的映射关系,避免匹配错误:
Fecha:日期Precio máximo de Bolsa ($/kWh):对应逻辑中的能源股市价格Precio de escasez ($/kWh):对应逻辑中的短缺价格Precio de escasez de activación ($/kWh):对应逻辑中的激活价格
代码实现
方法1:使用numpy的where(推荐,写法更直观)
import numpy as np # 新增实际售价列 df['实际售价($/kWh)'] = np.where( # 条件:股市价格高于激活价格 df['Precio máximo de Bolsa ($/kWh)'] > df['Precio de escasez de activación ($/kWh)'], # 条件成立取短缺价格 df['Precio de escasez ($/kWh)'], # 条件不成立取股市价格 df['Precio máximo de Bolsa ($/kWh)'] )
方法2:使用pandas原生where(无需额外依赖)
df['实际售价($/kWh)'] = df['Precio de escasez ($/kWh)'].where( df['Precio máximo de Bolsa ($/kWh)'] > df['Precio de escasez de activación ($/kWh)'], df['Precio máximo de Bolsa ($/kWh)'] )
你提供的样例数据中所有能源股市价格均低于激活价格627.21$/kWh,因此样例数据生成的实际售价列数值会和能源股市价格列完全一致。
内容的提问来源于stack exchange,提问作者TTT2
相关产品推荐
相关产品推荐

