python - 对列执行多个条件
问题描述
我发现自己循环通过 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
解决方案
而不是循环 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
推荐阅读
- datetime - 离线模式下的otp当前日期时间问题
- api - VS Code API 调用不适用于基本授权
- c++ - 为什么在 same_as 中检查两次相等性?
- python-3.x - 生成具有特定长度并使用掩码的所有可能的十六进制字符串列表的最有效方法
- javascript - 使用 Firestore 集合创建带有 javascript 函数的 Html 表
- markdown - jupyter实验室可以当markdown编辑器吗?
- php - 在 PHP 中正确显示 HTML 电子邮件
- discord - 如何检查用户消息是否是视频?
- python - Pyarrow:将流读入熊猫数据帧高内存消耗
- php - 如何在 laravel Blade 中创建可搜索的选择选项表单