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

标签 python pandas dataframe series

<分区>

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

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

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

最佳答案

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

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

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

关于python - 根据多个条件替换列中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52151867/

相关文章:

python - 在 Python 中使用 pandas 对过滤后的数据应用过滤器

python - 如何根据条件合并两个数据集

python - Web 服务中的代码解释器

pandas - 使用 pandas asfreq/resample 获取周期结束

python - 如何在 Bluemix 中使用 to_csv

R:合并两个数据帧而不相乘行

python - Pandas 自动将行转换为列

python - Pandas Cumsum 跳过行

python - 使用 python 连接到 Sql 数据库的 Azure Runbook

python - Celery 守护进程的多个队列