首页 > 后端开发 > Python教程 > 如何使用 Python 根据现有列中的条件创建新列?

如何使用 Python 根据现有列中的条件创建新列?

Barbara Streisand
发布: 2024-12-30 05:18:21
原创
644 人浏览过

How to Create a New Column Based on Conditions in an Existing Column Using Python?

根据现有列创建包含值的新列

在某些数据分析场景中,您可能需要创建一个新列,其中这些值是根据现有列中的特定条件选择的。这可以使用 Python 中的各种方法来实现,具体取决于要检查的条件的数量。

np.where 的二选一场景

如果你只有两个可供选择的选项,可以有效地使用 numpy 函数 np.where 。它采用以下形式:

df['new_column'] = np.where(condition, value_if_true, value_if_false)
登录后复制

其中“df”是数据帧,“condition”是定义条件的布尔表达式,“value_if_true”是条件为 True 时要分配的值, 'value_if_false' 是条件为 False 时要分配的值。

例如,在提供的数据框,其中“颜色”为“绿色”,如果“设置”为“Z”和“红色”,否则,您可以使用:

df['color'] = np.where(df['Set']=='Z', 'green', 'red')
登录后复制

带有 np.select 的多个条件

如果要检查两个以上的条件,可以使用 numpy 函数 np.select。它允许更复杂的条件逻辑。格式如下:

df['new_column'] = np.select(conditions, choices, default=None)
登录后复制

其中“conditions”是布尔表达式列表,“choices”是每个条件对应的值列表,“default”是要分配的值,如果不满足任何条件。

例如,如果将 'color' 指定为 'yellow',则 ('Set' == 'Z') & ('Type' == 'A'),当 ('Set' == 'Z') & ('Type' == 'B') 时为'蓝色',当 ('Type' == 'B') 时为 '紫色' 'B'),否则为 'black',您可以使用:

conditions = [
    (df['Set'] == 'Z') & (df['Type'] == 'A'),
    (df['Set'] == 'Z') & (df['Type'] == 'B'),
    (df['Type'] == 'B')]
choices = ['yellow', 'blue', 'purple']
df['color'] = np.select(conditions, choices, default='black')
登录后复制

以上是如何使用 Python 根据现有列中的条件创建新列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板