【发布时间】:2018-10-26 05:22:30
【问题描述】:
我有一个数据框是
| A | B |
| -- | -- |
| 1 | good |
| 2 | bad |
| 3 | bad |
| 4 | mid |
我想添加另一列将 B 列转换为数字,这样如果 B 为“好”,则为 1,如果 B 为“坏”,则为 0,如果 B 为“中”,则为另一个数字,比如 2。
鉴于数据框非常大,最有效的方法是什么?我可以使用 lambda 函数和.apply,这是一种方法,不是特别有效。使用过滤你可以做类似的事情
df['C'] = np.where(df['B']=='good', 1, 0)
这将允许我使用二进制条件并且非常快。但是要使它同时满足这两个条件,我必须使用其中两个语句。我想知道是否有一种方法可以使用双重条件的有效过滤。
【问题讨论】: