在pandas中组合数据帧并使用最大值填充

时间:2015-12-21 19:58:09

标签: python-3.x pandas

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

示例:

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

1 个答案:

答案 0 :(得分:2)

您可以使用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是列还是索引,但最终结果是相同的。

修改

实际上只使用http://atozed.com/IntraWeb/Download/FreeKeyRequest.EN.aspx

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