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

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

Barbara Streisand
Barbara Streisand原创
2024-12-30 05:18:21650浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn