【发布时间】:2018-09-15 13:20:13
【问题描述】:
使用数据框 df:
Product_ID | Category_A | Category _B
1232 0 0
1343 Unknown X
2543 Nan 0
2549 Y Y
0349 X X
8533 Y X
我想创建一个新列 Category_Final,其规则如下:
- 如果 Category_A 为 0、Unknown 或 Nan,Category_Final 应为“Unknown”
- 如果 Category_A 与 Category_B 相同,Category_Final 应为 0
- 如果 Category_A 与 Category_B 不同,Category_Final 应该是 X
预期输出:
Product_ID | Category_A | Category _B | Category_Final
1232 0 0 Unknown
1343 Unknown X Unknown
2543 Nan 0 Unknown
2549 Y Y 0
0349 X X 0
8533 Y X X
我设法获得了 0 和 X 的逻辑,但我不知道如何包含未知逻辑。
df['Category_Final'] = np.where(df['Category_A'] != df['Category_B'], 'X', '0')
谢谢!
【问题讨论】:
-
我认为在这些情况下,numpy select 提供了最易读的解决方案:Pandas conditional creation of a series/dataframe column
标签: python pandas if-statement conditional nan