如何为选定的列在一行中选择最大值和最小值
问题描述:
让我们说我们有下表
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