这个问题在这里已有答案:
我对这个问题similar question有类似的问题。但是,我需要在给定不同条件的情况下替换同一列中的值。类似下面的代码
for item in items:
df.loc[df['A'] == item,'A'] = 'other'
其中items是一个包含不同字符串的列表,我需要将其替换为“A”列中的“other”。问题是我的数据帧非常大,而且这种方法非常慢。有更快的方法吗?
使用pd.Series.isin
通过单个布尔系列进行索引:
df.loc[df['A'].isin(items), 'A'] = 'other'
你的逻辑中的瓶颈是循环中的df['A'] == item
。上述方法确保仅计算单个布尔系列用于索引。