Pandas 在2个数据帧之间切换条件

Pandas 在2个数据帧之间切换条件,pandas,dataframe,Pandas,Dataframe,我有两个数据帧df1和df2 df1 df2 两个数据帧具有相同的维度。我想说,如果df2中的值是0,那么根据df1中的列和索引a 0给出该值 因此,df1将是 df1 使用: 要获得更好的性能,请使用: 使用: 要获得更好的性能,请使用: 使用: 使用: 另一种方式- df1 = df1[~df2.eq(0)].fillna(0) 另一种方式- df1 = df1[~df2.eq(0)].fillna(0) 哇,这比我试图设置的if语句更干净。感谢you@jezrael它应该是np.whe

我有两个数据帧df1和df2

df1

df2

两个数据帧具有相同的维度。我想说,如果df2中的值是0,那么根据df1中的列和索引a 0给出该值

因此,df1将是

df1

使用:

要获得更好的性能,请使用:

使用:

要获得更好的性能,请使用:

使用:

使用:

另一种方式-

df1 = df1[~df2.eq(0)].fillna(0)
另一种方式-

df1 = df1[~df2.eq(0)].fillna(0)

哇,这比我试图设置的if语句更干净。感谢you@jezrael它应该是np.wheredf2==0,0,df1.wow,这比我试图设置的if语句更干净。感谢you@jezrael它应该是np.wheredf2==0,0,df1。
   A    B    C
0  11   22   55
1  0   0   54
2  0    34    66
df1 = df1.mask(df2 == 0, 0)
df1 = pd.DataFrame(np.where(df2 == 0, 0, df1), 
                   index=df1.index, 
                   columns=df1.columns)

print (df1)
    A   B   C
0  11  22  55
1   0   0  54
2   0  34  66
df1 = df1.where(df2.ne(0), 0)

print(df1)
    A   B   C
0  11  22  55
1   0   0  54
2   0  34  66
df1 = df1[~df2.eq(0)].fillna(0)