两个形状相等的数据帧:如何获取每个单元格具有最小值的数据帧



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

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

即:每个单元格的最小值

使用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

让我们做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

可能:

np.where(df1 < df2, df1, df2)

或者,如果需要数据帧

pd.DataFrame(np.where(df1 < df2, df1, df2),
index=df1.index,
columns=df1.columns)

我们可以使用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

最新更新