首页 > 解决方案 > Pandas:现有列中具有最大值的新列

问题描述

我很难理解如何在没有迭代的情况下进行基本的数据操作,所以如果我不再有意义,试着对我放轻松。假设我有一个df如下所示的数据框:

        f1    f2    f3    f4
1       1     2     3     'Sari'
2       2     1     4     'Sally'
3       3     0     1     'Jose'

我想知道如何获得每行中的最大整数。我可以将其存储在新列 f5 中。所以,也许代码

df['f5'] = ??? #I'm stuck...

标签: pythonpandas

解决方案


使用df.max(axis=1)

In [2682]: df 
Out[2682]: 
   f1  f2  f3       f4
1   1   2   3   'Sari'
2   2   1   4  'Sally'
3   3   0   1   'Jose'

In [2684]: df['f5'] = df.select_dtypes('number').max(axis=1)
In [2685]: df                
Out[2685]: 
   f1  f2  f3       f4  f5
1   1   2   3   'Sari'   3
2   2   1   4  'Sally'   4
3   3   0   1   'Jose'   3

df.select_dtypes('number')dtype仅选择具有asint或的那些列float。这可确保max仅对数字列而不是字符串列进行计算。

axis=1在行级计算函数。

axis=0计算列级的函数。


推荐阅读