Pandas If语句(等同于Excel)

Kvo*_*the 3 if-statement python-3.x pandas

我正在尝试在熊猫中创建一个简单的if语句。

Excel版本如下:

= IF(E2 =“ ABC”,C2,E2)

我被困在如何基于字符串或部分字符串分配它。

这就是我所拥有的。

df['New Value'] = df['E'].map(lambda x: df['C'] if x == 'ABC' else df['E']]
Run Code Online (Sandbox Code Playgroud)

我知道我在这里犯了一个错误。

结果是每个单元格中的整个数据帧值。

任何帮助将非常感激!

EdC*_*ica 5

用途np.where

In [36]:
df = pd.DataFrame({'A':np.random.randn(5), 'B':0, 'C':np.arange(5),'D':1, 'E':['asdsa','ABC','DEF','ABC','DAS']})
df

Out[36]:
          A  B  C  D      E
0  0.831728  0  0  1  asdsa
1  0.734007  0  1  1    ABC
2 -1.032752  0  2  1    DEF
3  1.414198  0  3  1    ABC
4  1.042621  0  4  1    DAS

In [37]:    
df['New Value'] = np.where(df['E'] == 'ABC', df['C'], df['E'])
df

Out[37]:
          A  B  C  D      E New Value
0  0.831728  0  0  1  asdsa     asdsa
1  0.734007  0  1  1    ABC         1
2 -1.032752  0  2  1    DEF       DEF
3  1.414198  0  3  1    ABC         3
4  1.042621  0  4  1    DAS       DAS
Run Code Online (Sandbox Code Playgroud)

的语法为np.where

np.where( < condition >, True condition, False condition )
Run Code Online (Sandbox Code Playgroud)

因此,当条件为Truetrue 时,它将返回True条件,False而其他条件为时。