繁体   English   中英

根据第二个数据框设置数据框的值

[英]Set values of a dataframe based on a second dataframe

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

因此,我创建了一个10的pandas DataFrame:

boolean_data = [(1, 0), (0, 1), (0, 0)]
df_criteria = DataFrame(data=boolean_data, index=['A','B','C'], columns=['x','y'])
x    y
A   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
B  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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM