组合panda中的数据帧并使用最大值填充



我试图在panda中组合多个数据帧,我希望新的数据帧包含各种数据帧中的最大元素。所有数据帧都具有相同的行和列标签。我该怎么做?

示例:

df1 = Date     A    B    C
      1/1/15   3    5    1
      2/1/15   2    4    7
df2 = Date     A    B    C
      1/1/15   7    2    2
      2/1/15   1    5    4

我希望结果看起来像这样。

df =  Date     A    B    C
      1/1/15   7    5    2
      2/1/15   2    5    7

您可以使用np.where返回一个满足布尔条件的值数组,然后可以使用它来构造df:

In [5]:
vals = np.where(df1 > df2, df1, df2)
vals
Out[5]:
array([['1/1/15', 7, 5, 2],
       ['2/1/15', 2, 5, 7]], dtype=object)
In [6]:    
pd.DataFrame(vals, columns = df1.columns)
Out[6]:
     Date  A  B  C
0  1/1/15  7  5  2
1  2/1/15  2  5  7

我不知道Date是列还是索引,但最终结果是一样的。

编辑

实际上只使用np.maximum:

In [8]:
np.maximum(df1,df2)
Out[8]:
     Date  A  B  C
0  1/1/15  7  5  2
1  2/1/15  2  5  7

最新更新