如何创建基于pandas(python)中其他2个DataFrame的最小值的DataFrame?

问题描述 投票:0回答:1

假设我有

DataFrame
df1
df2
:

>>> df1 = pd.DataFrame({'A': [0, 2, 4], 'B': [2, 17, 7], 'C': [4, 9, 11]})
>>> df1
   A   B   C
0  0   2   4
1  2  17   9
2  4   7  11
>>> df2 = pd.DataFrame({'A': [9, 2, 32], 'B': [1, 3, 8], 'C': [6, 2, 41]})
>>> df2
    A  B   C
0   9  1   6
1   2  3   2
2  32  8  41

我想要的是第三个

DataFrame
,其行数最少(
min
是根据列
B
计算的),即:

>>> df3
   A  B   C
0  9  1   6
1  2  3   2
2  4  7  11

我真的不想通过迭代所有行并逐一比较它们来做到这一点,有没有一种更快、更紧凑的方法来做到这一点?

python pandas dataframe min
1个回答
0
投票

您可以

mask
df1
df2
df2['B'] < df1['B']
:

out = df1.mask(df2['B'].lt(df1['B']), df2)

输出:

   A  B   C
0  9  1   6
1  2  3   2
2  4  7  11
© www.soinside.com 2019 - 2024. All rights reserved.