【问题标题】:apply a function to a row with condition将函数应用于具有条件的行
【发布时间】:2016-03-16 18:14:16
【问题描述】:

我得到了这个数据框

    x1  x2  x3
1  2.5 2.8 1.4
2  2.1 1.9 2.3
3  1.7 2.2 4.4
4  2.4 3.8 3.7
5  4.3 4.4 4.1
6  4.2 4.9 2.4
7  2.7 1.5 2.5
8  2.8 3.3 4.9
9  3.5 2.3 2.9
10 4.1 2.8 2.2

所以我需要检查每一行的条件并对这一行应用一个函数,以便该函数的值位于第四列或外部向量中。即如果 min_value_of_row

如何做到这一点?

【问题讨论】:

    标签: row conditional-statements


    【解决方案1】:

    有点晚了,但我正在寻找类似的东西。首先,我将创建两列,每行的 minmean 值:

    df['min'] = df.min(axis=1)
    

    df['mean'] = df.mean(axis=1)
    

    然后构建一个函数:

    def f(x):
        thr = 2
        if x['min'] <= thr:
             x = x['min']
        else:
             x = x['mean']
    
        return x
    

    并将其逐行应用于数据框(axis=1):

    df['value'] = df.apply(f, axis=1)
    

    返回:

         x1   x2   x3  value
    1   2.5  2.8  1.4  1.400
    2   2.1  1.9  2.3  1.900
    3   1.7  2.2  4.4  1.700
    4   2.4  3.8  3.7  3.075
    5   4.3  4.4  4.1  4.225
    6   4.2  4.9  2.4  3.475
    7   2.7  1.5  2.5  1.500
    8   2.8  3.3  4.9  3.450
    9   3.5  2.3  2.9  2.750
    10  4.1  2.8  2.2  2.825
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 2017-10-13
      • 2015-03-15
      相关资源
      最近更新 更多