首页 > 解决方案 > 比较两个数据框列以添加具有结果的新列

问题描述

将其用作演示数据集:

    a = [['11', '2'], ['15', '70'], ['8', '5']]
    df = pd.DataFrame(a, columns=['Person','one', 'two'])

    Out[8]: 
        Person one  two
    0   Jim    10  1.2
    1   John   15  70
    2   Bob    8   5 

我想创建某种逻辑计算来仅比较列的onetwo,比较它们并输出一个带有结果的新列

像这样的计算如果第一列>第二列放 1 否则 0

期望的输出:

    Out[8]: 
        Person one  two  Results
    0   Jim    10  1.2   1
    1   John   15  70    0
    2   Bob    8   5     1

标签: pythonpython-3.xpandasdataframeif-statement

解决方案


利用:

df['Results'] = df['one'].gt(df['two']).astype(int)

或者:

df['Results'] = (df['one'] > df['two']).astype(int)

编辑:

利用:

df['Results'] = np.where(df['one'] > df['two'], 'Higher', 'Lower')

推荐阅读