根据多个条件替换列中的所有值[重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

我对这个问题similar question有类似的问题。但是,我需要在给定不同条件的情况下替换同一列中的值。类似下面的代码

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

其中items是一个包含不同字符串的列表,我需要将其替换为“A”列中的“other”。问题是我的数据帧非常大,而且这种方法非常慢。有更快的方法吗?

python pandas dataframe series
1个回答
1
投票

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

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

你的逻辑中的瓶颈是循环中的df['A'] == item。上述方法确保仅计算单个布尔系列用于索引。

© www.soinside.com 2019 - 2024. All rights reserved.