我很难理解如何在不进行迭代的情况下进行基本数据操作,因此,如果我不再有任何道理,请尝试轻松一点。
假设我有一个看起来像这样的数据框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...
答案 0 :(得分: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
作为int
或float
的列。这样可以确保max
仅在数字列而不是字符串列上进行计算。
axis=1
在行级计算函数。
axis=0
在列级计算函数。
答案 1 :(得分:-1)
天哪,我想我明白了...
df['f5'] = df[['f1','f2','f3']].max(axis=1)
让我知道是否有更好的方法。