根据现有列创建包含值的新列
在某些数据分析场景中,您可能需要创建一个新列,其中这些值是根据现有列中的特定条件选择的。这可以使用 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中文网其他相关文章!