在 Pandas DataFrame 中相互检查列

我有一个包含一些“信号”列和“响应”列的大型数据框:


In [1]: df

Out[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_positive

Out[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

一定有一种方法需要循环的映射方法吗?


慕仙森
浏览 99回答 1
1回答

幕布斯6054654

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)outOut[229]:            response1                 response2                             signal1 signal2 signal3   signal1 signal2 signal32020-01-01      True    True   False     False   False    True2020-01-02     False    True   False     False    True   False2020-01-03     False    True    True      True   False   False
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python