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



我想屏蔽一个基于另一个数据帧中的布尔值的 Pandas 数据帧。

因此,我创建了一个10的熊猫数据帧:

boolean_data = [(1, 0), (0, 1), (0, 0)]
df_criteria = DataFrame(data=boolean_data, index=['A','B','C'], columns=['x','y'])
x y 一 1 0 B 0 1 C 0 0

我想使用上述df_criteria来屏蔽第二个数据帧df_result的值,即其中df_criteria(i,j)=1df_result(i,j)=0

df_result = DataFrame(
data=[(10, 20), (30, 20), (10, 10)],
index=['A','B','C'], columns=['x','y'])

df_result(遮罩前(

x y A 10 20 乙 30 20 C 10 10

df_result(遮蔽后(

x y A 0 20 B 30 0 C 10 10

IIUC, 使用mask

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

使用pd.DataFrame.ilocnumpy.where

df.iloc[:] = np.where(df_criteria, 0, df)
print(df)
x   y
A   0  20
B  30   0
C  10  10

相关内容

  • 没有找到相关文章

最新更新