代码之家  ›  专栏  ›  技术社区  ›  Whitney W

如何根据python中的当前值重新计算列的值?

  •  0
  • Whitney W  · 技术社区  · 2 年前

    我需要将一列的值乘以2.2,但前提是这些值小于30。任何帮助都将不胜感激

    这是我试过的。我知道这是非常错误的,但我不知道该怎么办。我是python的新手,所以请原谅这个愚蠢的问题。

    小于30的值以千克为单位,需要重新计算为磅。

    df['Weight']=np.where(df['Weight'] > 30, df['Weight']*2.2)
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   e-motta    2 年前

    例如,给定此数据帧:

    df = pd.DataFrame({"weight": [10, 20, 30, 40, 50]})
    
       weight
    0      10
    1      20
    2      30
    3      40
    4      50
    

    您可以使用 .loc 这样地:

    df.loc[df["weight"] < 30, "weight"] = df["weight"] * 2.2
    
       weight
    0      22
    1      44
    2      30
    3      40
    4      50
    

    您可以阅读有关选择数据的更多信息 here .


    您也可以使用 DataFrame.where numpy.where ):

    df["weight"] = df.where(df["weight"] >= 30, df["weight"] * 2.2, axis=0)
    
    重量
    0      22
    1      44
    2      30
    3      40
    4      50
    

    DataFrame.mask :

    df["weight"] = df.mask(df["weight"] < 30, df["weight"] * 2.2, axis=0)
    
    重量
    0      22
    1      44
    2      30
    3      40
    4      50