如何为选定的列在一行中选择最大值和最小值

问题描述:

让我们说我们有下表

Let us say we have the following table

,我想找到一组特定列(假设为CENSUS2010POP,ESTIMATESBASE1010,POPESTIMATE2010)的每一行的最大值和最小值. 熊猫怎么做?

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?

我认为您需要 max :

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)

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