Home > OS >  How do I find the max value in only specific columns in a row?
How do I find the max value in only specific columns in a row?

Time:10-11

If this was my dataframe

a b c
12 5 0.1
9 7 8
1.1 2 12.9

I can use the following code to get the max values in each row... (12) (9) (12.9)

df = df.max(axis=1)

But I don't know would you get the max values only comparing columns a & b (12, 9, 2)

CodePudding user response:

Assuming one wants to consider only the columns a and b, and store the maximum value in a new column called max, one can do the following

df['max'] = df[['a', 'b']].max(axis=1)

[Out]:

      a  b     c   max
0  12.0  5   0.1  12.0
1   9.0  7   8.0   9.0
2   1.1  2  12.9   2.0

One can also do that with a custom lambda function, as follows

df['max'] = df[['a', 'b']].apply(lambda x: max(x), axis=1)

[Out]:

      a  b     c   max
0  12.0  5   0.1  12.0
1   9.0  7   8.0   9.0
2   1.1  2  12.9   2.0

As per OP's request, if one wants to create a new column, max_of_all, that one will use to store the maximum value for all the dataframe columns, one can use the following

df['max_of_all'] = df.max(axis=1)


[Out]:

      a  b     c   max  max_of_all
0  12.0  5   0.1  12.0        12.0
1   9.0  7   8.0   9.0         9.0
2   1.1  2  12.9   2.0        12.9
  • Related