pandas 中具有多个条件的 If 语句

问题描述 投票:0回答:1

我有以下 df

|  Col A   |    Col B
-----------------------
| Nan      |    3144
| Nan      |    3145
| 123      |    3246
| Nan      |    Nan

我想添加一个新的 C 列,逻辑如下:

如果 Col A 为空并且 Col B 填充了一些数据,则 A

否则,如果 A 列和 B 列有一些数据,或者两列都有空值,则 B。

所以结果应该是这样的。

|  Col A   |    Col B    |    Col C
-------------------------------------
| Nan      |    3144     |    A
| Nan      |    3145     |    A
| 123      |    3246     |    B
| Nan      |    Nan      |    B

我如何得到这个?对 Python 相当陌生

python pandas numpy if-statement
1个回答
0
投票

使用一个简单的条件来检查值是否为 NaN,然后使用 np.where 和条件“Col A 等于 Col B”。如果条件为 True,则返回 B,否则返回 'A'

m = df.isna()
np.where(m['Col A'].eq(m['Col B']), 'B', 'A')
© www.soinside.com 2019 - 2024. All rights reserved.