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

在 Pandas DataFrame 中相互检查列

在 Pandas DataFrame 中相互检查列

慕仙森 2023-12-12 14:56:53
我有一个包含一些“信号”列和“响应”列的大型数据框: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


查看完整回答
反对 回复 2023-12-12
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

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