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)
我知道我在这里犯了一个错误。
结果是每个单元格中的整个数据帧值。
任何帮助将非常感激!
用途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而其他条件为时。
| 归档时间: |
|
| 查看次数: |
2814 次 |
| 最近记录: |