![](/img/trans.png)
[英]Set values in Pandas one dataframe based on rows in second dataframe
[英]Set values of a dataframe based on a second dataframe
我想基于另一个数据框中的布尔值屏蔽Pandas数据框。
因此,我创建了一个1
和0
的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)=1
, df_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.iloc
和numpy.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.