为了账号安全,请及时绑定邮箱和手机立即绑定

按列位置遮罩2 df

按列位置遮罩2 df

繁星点点滴滴 2021-04-06 13:15:22
我想使用另一个掩盖df,而不管列的名称如何,但仅考虑它们的位置。例如,给定以下2 df:df = pd.DataFrame({'D': [10,20,0], 'E': [0, 30, 10], 'F': [0, 0, 10]})df2 = pd.DataFrame({'A': [1,1,1], 'C': [1, 1, 1], 'E': [1, 1, 1]})并使用这个mask:mask = (df != 0)我想:     A    C    E0  NaN  1.0  1.01  NaN  NaN  1.02  1.0  NaN  NaN其中D掩模A,E掩模(第一DF的)C和F掩模E(第二DF的)。我可以这样删除列名称:df.columns = [''] * len(df.columns)mask = (df != 0)df2.columns = [''] * len(df2.columns)dfn = df2.mask(mask)但是有更好的方法吗?提前致谢
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您很接近,可以将布尔数据框转换为布尔二维数组:


mask = (df != 0).values

dfn = df2.mask(mask)

print (dfn)


     A    C    E

0  NaN  1.0  1.0

1  NaN  NaN  1.0

2  1.0  NaN  NaN


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信