根据多个条件替换列中的所有值

时间:2018-09-03 14:38:51

标签: python pandas dataframe series

我对此问题similar question有类似的问题。但是,我需要在不同条件下替换同一列中的值。类似于下面的代码

for item in items:
    df.loc[df['A'] == item,'A'] = 'other'

其中item是具有不同字符串的列表,我需要在“ A”列中将其替换为“ other”。问题是我的数据框很大,而且这种方法很慢。有更快的方法吗?

1 个答案:

答案 0 :(得分:1)

使用pd.Series.isin通过单个布尔系列建立索引:

df.loc[df['A'].isin(items), 'A'] = 'other'

您的逻辑瓶颈是df['A'] == item循环出现。上述方法可确保仅计算单个布尔序列进行索引。