熊猫:新列,现有列中的价值最大

时间:2020-06-11 21:11:40

标签: python 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...

2 个答案:

答案 0 :(得分:1)

使用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作为intfloat的列。这样可以确保max仅在数字列而不是字符串列上进行计算。

axis=1 在行级计算函数。

axis=0 在列级计算函数。

答案 1 :(得分:-1)

天哪,我想我明白了...

df['f5'] = df[['f1','f2','f3']].max(axis=1)

让我知道是否有更好的方法。

相关问题