最多两列以给定常量为条件

时间:2017-10-24 19:14:57

标签: python-3.x pandas max conditional-statements

我有一个带有多个列的pandas DF。我想应用以下(概念):

df['Z'] = int( max(df[['A','B']].max(axis=1) ) > CONST )

换句话说:

1)max(df[['A','B']]) > CONST会返回TRUEFALSE

2)在df['Z']我希望存储10,具体取决于之前的情况。

我知道我可以做到最多两列:

df['Z'] = df[['A','B']].max(axis=1)

我不知道如何将最大值与给定的CONST进行比较?

我该如何实现?

谢谢!

2 个答案:

答案 0 :(得分:2)

你的代码几乎就在那里。考虑这个虚拟df,

df = pd.DataFrame({'A': [5,9,3,17,52], 'B': [94,23,5,12,2]})

为常数

const = 20
df['Z'] = (df[['A','B']].max(axis=1) > const).astype(int)

你得到了

    A   B   Z
0   5   94  1
1   9   23  1
2   3   5   0
3   17  12  0
4   52  2   1

答案 1 :(得分:2)

df[[‘A’, ‘B’]].gt(const).any(1).astype(int)