两个形状相同的数据框:如何获取每个单元格最小的数据框

时间:2019-11-26 15:58:39

标签: python python-3.x pandas dataframe

来自两个形状相同的数据帧,如下所示:

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

即:每个单元的最小值

4 个答案:

答案 0 :(得分:5)

使用np.minimum

np.minimum(df1, df2)

   col1  col2  col3
0     1    11    22
1     2    33    44
2     3    55    66
3     4    77    88
4     5    99     0

答案 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