pandas 数据框中列的表达式的条件评估

Conditional evaluation of expression over columns in a pandas dataframe

我有以下数据框:

我正在尝试根据以下条件根据 CHART_TYPE 列值根据以下规则计算 sigma:

If chart type is X-BAR -> SIGMA = (UPPER_CONTROL_LIMIT - LOW_CONTROL_LIMIT)/6
If chart type is MIN -> SIGMA = (TARGET - LOW_CONTROL_LIMIT)/3
If chart type is MAX -> SIGMA = (UPPER_CONTROL_LIMIT - TARGET)/3

请指教

您应该可以在这里使用 df.apply

首先,创建一个助手:

def func(row):
    if row['CHART_TYPE'] == 'X_BAR':
        return (row['UPPER_CONTROL_LIMIT'] - row['LOW_CONTROL_LIMIT']) / 6

    elif row['CHART_TYPE'] == 'MIN':
        return (row['TARGET'] - row['LOW_CONTROL_LIMIT']) / 3

    return (row['UPPER_CONTROL_LIMIT'] - row['TARGET']) / 3

现在,致电df.apply

df.SIGMA = df.apply(func, axis=1)