Python 比较两个数据帧并将结果存储在另一个数据帧中

Python 比较两个数据帧并将结果存储在另一个数据帧中,python,pandas,dataframe,for-loop,if-statement,Python,Pandas,Dataframe,For Loop,If Statement,我有两个这样的数据帧:第一个有一列720行(数据帧A),第二个有十列720行(数据帧B)。数据帧仅包含数值 我试图用这种方式比较它们:我希望遍历数据框B的每一列,并将该列的每个单元格(行)与数据框A中相应的行进行比较。 (例如:对于数据框B的第一列,我将第一行与数据框A的第一行进行比较,然后将B的第二行与A的第二行进行比较,以此类推。) 基本上,我想逐行比较dataframe B中的每一列与dataframe A中的单个列 如果数据帧B中的值小于或等于数据帧A中的值,我想将+1添加到另一个数据帧

我有两个这样的数据帧:第一个有一列720行(数据帧A),第二个有十列720行(数据帧B)。数据帧仅包含数值

我试图用这种方式比较它们:我希望遍历数据框B的每一列,并将该列的每个单元格(行)与数据框A中相应的行进行比较。 (例如:对于数据框B的第一列,我将第一行与数据框A的第一行进行比较,然后将B的第二行与A的第二行进行比较,以此类推。)

基本上,我想逐行比较dataframe B中的每一列与dataframe A中的单个列

如果数据帧B中的值小于或等于数据帧A中的值,我想将+1添加到另一个数据帧(或列表,取决于它的简单程度)。最后,我想删除dataframe B中至少没有一个单元格来满足条件的任何列(基本上,如果添加到列表或新dataframe的值为0)

我尝试了类似的方法(为一行编写,我想用它创建一个for循环),但它似乎没有达到我想要的效果:

DfA_i = pd.DataFrame(DA.iloc[i])
DfB_j = pd.DataFrame(DB.iloc[j])
B = DfB_j.values
DfC['Criteria'] = DfA_i.apply(lambda x: len(np.where(x.values <= B)), axis=1)
dv = dt_dens.values
if dv[1] < 1:
            DF = DA.drop(i)
DfA_i=pd.DataFrame(DA.iloc[i])
DfB_j=pd.DataFrame(DB.iloc[j])
B=DfB_j.值
DfC['Criteria']=DfA_i.apply(λx:len(np.where)(x.values让我们试试:

dfB.loc[:, dfB.ge(dfA.values).any()]
解释
dfA.values
返回形状为
(720,1)
的numpy数组。然后
dfB.ge(dfA.values)
检查
dfB
中的每一列与
dfA
中的单列;这将返回与
dfB
相同大小的布尔数据帧。最后
.any()
沿着该布尔数据框的列检查是否存在任何
True

这样如何:

pd.DataFrame(np.where(A.to_numpy() <= B.to_numpy(),1,np.nan), columns=B.columns, index=A.index).dropna(how='all')

pd.DataFrame(np.where(A.to_numpy())引文中的例子措词不正确。如果你能为社区提供一个可复制的数据框架,这也会有很大帮助。