我试图在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
答案 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