我有一个包含一些“信号”列和“响应”列的大型数据框:In [1]: dfOut[1]: response1 response2 signal1 signal2 signal3 2020-01-01 True False True True False 2020-01-02 True True False True False 2020-01-03 False True True False False我想检查每对(响应,信号)并返回一个多索引数据帧:In [2]: true_positiveOut[2]: response1 response2 signal1 signal2 signal3 signal1 signal2 signal3 2020-01-01 True True False False False True 2020-01-02 False True False False True False 2020-01-03 False True True True False False一定有一种方法需要循环的映射方法吗?
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
concat将 df 分成两部分后尝试
r = df.filter(like = 'response')
s = df.filter(like = 'signal')
out = pd.concat([s.eq(r[x], axis=0)for x in r.columns], keys=r.columns, axis=1)
out
Out[229]:
response1 response2
signal1 signal2 signal3 signal1 signal2 signal3
2020-01-01 True True False False False True
2020-01-02 False True False False True False
2020-01-03 False True True True False False
添加回答
举报
0/150
提交
取消