首页 > 解决方案 > 如何在 Pandas DataFrame 中执行列值的条件更新?

问题描述

我有一个下面的数据框有什么方法可以在熊猫中执行条件添加列值。

  emp_id    emp_name    City    months_worked   default_sal total_sal   jan feb mar apr may jun
    111     aaa         pune       2                    90  NaN          4  5   5   54  3   2
    222     bbb         pune       1                    70  NaN          5  4   4   8   3   4
    333     ccc       mumbai       2                   NaN  NaN          9  3   4   8   4   3
    444     ddd          hyd       4                   NaN  NaN          3  8   6   4   2   7

我想要达到的目标

所需的 O/P

emp_id  emp_name    City    months_worked   default_sal total_sal   jan feb mar apr may jun
    111     aaa     pune       2                  90    90           4  5   5   54  3   2
    222     bbb     pune       1                  70    70           5  4   4   8   3   4
    333     ccc     mumbai     2                  NaN   12           9  3   4   8   4   3
    444     ddd      hyd       4                  NaN   21           3  8   6   4   2   7

标签: pythonpython-3.xpandasdataframe

解决方案


np.where在创建帮助系列之后使用

s1=pd.Series([df.iloc[x,6:y+6].sum() for x,y in enumerate(df.months_worked)],index=df.index)
np.where(df.City=='pune',df.default_sal,s1 )
Out[429]: array([90., 70., 12., 21.])

#df['total']=np.where(df.City=='pune',df.default_sal,s1 )

推荐阅读