在Python(Pandas / Numpy)中。如何使用两个独立系列的最大/最小值创建列?

时间:2014-11-11 23:27:41

标签: python numpy pandas dataframe

我需要创建一个df.column,其中包含最多两个其他系列(这些系列不在数据框中,但它们共享相同的索引)。我不能只将它们添加到数据框中,因为它们都具有相同的列名,并且它变得一团糟。

天真的第一直觉是:

df['Max'] = max(a, b)

但是,正如预期的那样,此选项会给您错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

解决方案是:

df['Max'] = ""
df.loc[a > b, 'Max'] = a
df.loc[a < b, 'Max'] = b

是否有可能更有效地做到这一点?

由于

1 个答案:

答案 0 :(得分:2)

使用numpy.maximum

>>> np.maximum([2, 3, 4], [1, 5, 2])
array([2, 5, 4])