Pandas—如何根据列之间的逻辑创建新列



我有一个pandas DataFrame,其中包含一个国家按天计算的能源价格,购买能源的价格取决于能源的报价,即如果报价低,价格会上涨,反之亦然。为了避免能源股票市场的崩溃,政府定义了一些被称为激活价格的值,这些值是根据该国最近几天生产的能源的平均价格计算出来的,如果能源股票市场的价格超过了这个激活价格,那么购买能源的价格就被称为短缺价格,这意味着报价真的很低。我需要创建一个熊猫列,其中包含能源正在出售的实际价格,这意味着检查能源的能源股票市场价格是否高于激活价格以将价格设置为短缺价格,或者如果价格低于激活价格,则实际价格将是能源股票市场。pandas数据框如下所示:

Fecha    Precio máximo de Bolsa ($/kWh)     Precio de escasez ($/kWh)   Precio marginal de escasez ($/kWh)  Precio de escasez de activación ($/kWh)

2020-01-01  406.73  551.24  627.21  627.21
2020-01-02  397.90  551.24  627.21  627.21
2020-01-03  285.31  551.24  627.21  627.21
2020-01-04  255.36  551.24  627.21  627.21
2020-01-05  305.12  551.24  627.21  627.21

查看熊猫系列。地点:

df['real_price'] = df['stock_price'].where(df['stock_price'] <= activation_price, shortage_price)

当条件为True时,保持原始值,当条件为False时,则将值设置为最后一个参数。

最新更新