Python 基于第二个数据帧设置数据帧的值

Python 基于第二个数据帧设置数据帧的值,python,pandas,Python,Pandas,我想在另一个数据帧中屏蔽一个基于布尔值的熊猫数据帧 因此,我创建了一个熊猫数据帧,分别为1和0: boolean_data = [(1, 0), (0, 1), (0, 0)] df_criteria = DataFrame(data=boolean_data, index=['A','B','C'], columns=['x','y']) df_结果(掩蔽前) IIUC,使用mask df_result.mask(df_criteria==1,0) Out[55]: x y A

我想在另一个数据帧中屏蔽一个基于布尔值的熊猫数据帧

因此,我创建了一个熊猫数据帧,分别为
1
0

boolean_data = [(1, 0), (0, 1), (0, 0)]
df_criteria = DataFrame(data=boolean_data, index=['A','B','C'], columns=['x','y'])
df_结果
(掩蔽前)


IIUC,使用
mask

df_result.mask(df_criteria==1,0)
Out[55]: 
    x   y
A   0  20
B  30   0
C  10  10

使用
pd.DataFrame.iloc
numpy.where

df.iloc[:] = np.where(df_criteria, 0, df)

print(df)

    x   y
A   0  20
B  30   0
C  10  10

如果希望直接更改
df_结果
,而不是返回新的数据帧,可以使用
inplace=True
。等效地,
df.mask(df_criteria.astype(bool),0)
,只是为了强调标准是一个布尔数据帧/数组。 x y A 10 20 B 30 20 C 10 10 x y A 0 20 B 30 0 C 10 10
df_result.mask(df_criteria==1,0)
Out[55]: 
    x   y
A   0  20
B  30   0
C  10  10
df.iloc[:] = np.where(df_criteria, 0, df)

print(df)

    x   y
A   0  20
B  30   0
C  10  10