首页 > 解决方案 > 对列执行多个条件

问题描述

我发现自己循环通过 Dataframe 列来执行条件,并且基于这些条件,以下结果与该单元格相邻。有没有更有效的方法来执行此操作?

例如我有数据框df:

  A          B
potato
orange
watermelon
lettuce


... etc.

我将执行以下代码:

for i in range(len(df['A']):
    if df['A'].iloc[i] == 'watermelon':
        df['B'].iloc[i] = 'red'
    elif df['A'].iloc[i] == 'lettuce':
        df['B'].iloc[i] = 'green'
    elif .... : 

结果:

  A          B
potato     brown
orange     orange 
watermelon red
lettuce    green

标签: pythonpandasdataframe

解决方案


而不是循环 or apply()Series.replace()fruit:color字典一起使用:

fruit_color = dict(potato='brown', watermelon='red', lettuce='green')
df['B'] = df['A'].replace(fruit_color)

#             A       B
# 0      potato   brown
# 1      orange  orange
# 2  watermelon     red
# 3     lettuce   green

推荐阅读