来自两个形状相同的数据帧,如下所示:
1 11 22
2 330 440
3 55 66
4 770 880
5 99 0
1 110 220
2 33 44
3 550 660
4 77 88
5 990 0
我需要一个如下数据框
1 11 22
2 33 44
3 55 66
4 77 88
5 99 0
即:每个单元的最小值
答案 0 :(得分:5)
答案 1 :(得分:3)
让我们pandas
pd.concat([df1,df2]).min(level=0)
Out[189]:
1 2
1 11 22
2 33 44
3 55 66
4 77 88
5 99 0
答案 2 :(得分:1)
可能是:
np.where(df1 < df2, df1, df2)
或者如果您想要一个DataFrame
pd.DataFrame(np.where(df1 < df2, df1, df2),
index=df1.index,
columns=df1.columns)
答案 3 :(得分:1)
我们可以使用DataFrame.where
df1.where(df1<df2,df2)
我们也可以使用DataFrame.mask
df1.mask(df1>df2,df2)
其他方法 DataFrame.combine
:
df1.combine(df2, np.minimum)
输出
col1 col2 col3
0 1 11 22
1 2 33 44
2 3 55 66
3 4 77 88
4 5 99 0