代码之家  ›  专栏  ›  技术社区  ›  TTT2

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

  •  0
  • TTT2  · 技术社区  · 3 年前

    我有一个Panda DataFrame,它按天显示一个国家的能源价格,购买能源的价格取决于能源的报价,即如果报价低,价格就会上涨,反之亦然。为了避免能源股票市场的崩溃,政府定义了一些称为激活价格的值,这些值是用该国过去几天生产的能源的平均值计算的,如果能源股票市场价格超过这个激活价格,那么购买能源的价格就由一个称为短缺价格的价格定义,这意味着报价真的很低。我需要创建一个具有能源销售实际价格的Panda列,这意味着检查能源的能源股票市场价格是否高于激活价格,以将价格设置为短缺价格,或者如果价格低于激活价格,实际价格将是能源股票市场。 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
    
    1 回复  |  直到 3 年前
        1
  •  2
  •   whege    3 年前

    退房 Pandas' Series.Where :

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

    这将保持条件所在的原始值 True ,以及何时 False 然后将值设置为最后一个参数。