我想使用另一个掩盖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
添加回答
举报
0/150
提交
取消