【问题标题】:Creating new dataframe column where one column < another? [duplicate]创建一列<另一列的新数据框列? [复制]
【发布时间】:2021-05-13 12:05:25
【问题描述】:

我有一个名为 V_test 的数据框,看起来有点像这样:

 | offer_code | min_age_actual | min_age_allowed
-|------------|----------------|----------------
0| 123        | 18             | 18
1| 456        | 49             | 50
2| 789        | 20             | NaN

我想创建一个新列,将实际最小年龄低于允许的最小年龄(如果有的话)的任何行标记为 1。所有其他人都将被标记为 0。因此所需的结果将如下所示:

 | offer_code | min_age_actual | min_age_allowed | flag
-|------------|----------------|-----------------|-----
0| 123        | 18             | 18              | 0
1| 456        | 49             | 50              | 1
2| 789        | 20             | NaN             | 0

请问有人知道怎么做吗?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    通过Series.astype将两列比较为整数的布尔掩码转换:

    df['flag'] = (df.min_age_actual < df.min_age_allowed).astype(int)
    

    或者使用numpy.where:

    df['flag'] = np.where(df.min_age_actual < df.min_age_allowed), 1, 0)
    

    【讨论】:

      【解决方案2】:

      使用df['col'] = np.where(df['A']&lt;df['B'], 1, 0)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-26
        • 2018-02-13
        • 2021-12-02
        • 2021-06-25
        • 1970-01-01
        • 2019-08-12
        • 2020-08-04
        相关资源
        最近更新 更多