我对此问题similar question有类似的问题。但是,我需要在不同条件下替换同一列中的值。类似于下面的代码
for item in items:
df.loc[df['A'] == item,'A'] = 'other'
其中item是具有不同字符串的列表,我需要在“ A”列中将其替换为“ other”。问题是我的数据框很大,而且这种方法很慢。有更快的方法吗?
答案 0 :(得分:1)
使用pd.Series.isin
通过单个布尔系列建立索引:
df.loc[df['A'].isin(items), 'A'] = 'other'
您的逻辑瓶颈是df['A'] == item
循环出现。上述方法可确保仅计算单个布尔序列进行索引。