Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to select max and min value in a row for selected columns

Tags:

python

pandas

Let us say we have the following table enter image description here

and I want to find max and min value for every row for a set of specific columns (let's say CENSUS2010POP, ESTIMATESBASE1010, POPESTIMATE2010). How to do it with Pandas?

like image 405
YohanRoth Avatar asked Jan 03 '17 08:01

YohanRoth


People also ask

How do I find the maximum value of a row in SQL?

Discussion: To find the maximum value of a column, use the MAX() aggregate function; it takes a column name or an expression to find the maximum value. In our example, the subquery returns the highest number in the column grade (subquery: SELECT MAX(grade) FROM student ).


1 Answers

I think you need min and max:

df_subset=df.set_index('CTYNAME')[['CENSUS2010POP', 'ESTIMATESBASE1010', 'POPESTIMATE2010']]
df1 = df_subset.min(axis=1)
print (df1)

df2= df_subset.max(axis=1)
print (df2)

EDIT:

df = pd.DataFrame({'CTYNAME':['Alabama','Autauga County','Baldwin County','Barbour County'],
                   'CENSUS2010POP':[4,5,6,2],
                   'ESTIMATESBASE1010':[7,8,9,3],
                   'POPESTIMATE2010':[1,3,5,5]})

print (df)
   CENSUS2010POP         CTYNAME  ESTIMATESBASE1010  POPESTIMATE2010
0              4         Alabama                  7                1
1              5  Autauga County                  8                3
2              6  Baldwin County                  9                5
3              2  Barbour County 

df_subset=df.set_index('CTYNAME')[['CENSUS2010POP', 'ESTIMATESBASE1010', 'POPESTIMATE2010']]
df1 = df_subset.max(axis=1) - df_subset.min(axis=1)
print (df1)
CTYNAME
Alabama           6
Autauga County    5
Baldwin County    4
Barbour County    3
dtype: int64

print (df1.nlargest(1).reset_index(name='top1'))
   CTYNAME  top1
0  Alabama     6
like image 102
jezrael Avatar answered Oct 26 '22 22:10

jezrael