数据帧:如果符合2个单独的条件,则替换列中的值

时间:2017-11-16 15:55:16

标签: python pandas dictionary dataframe

逻辑我试图实施:

  1. 如果' phasename'列包含C1,C2,C4或C18和' reqmnt'列包含C
  2. 将需求栏中的C替换为' phasename'柱
  3. 否则离开' reqmnt'列是
  4. 以下是我尝试做的屏幕截图 enter image description here

    目前,我无法弄清楚如何合并"和"条件到我的python代码。所以我在屏幕截图中得到了current_column的结果。

    # create mapping dictionary
    phasename_dictionary = {'C1':'C1', 'C2':'C2', 'C4':'C4', 'C18':'C18'}
    # replace column value
    df.loc[df['phasename'].isin(phasename_dictionary.keys()), 'reqmnt'] = \
           df['phasename'].map(phasename_dictionary)
    

1 个答案:

答案 0 :(得分:0)

认为您正在寻找np.where

v = ['C1', 'C2', 'C4', 'C18']
df.reqmnt = np.where(df.phasename.isin(v) & df.reqmnt.eq('C'), df.phasename, df.reqmnt)