簡體   English   中英

在 Pandas DataFrame 中相互檢查列

[英]Check columns against each other in 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

必須有一種需要循環的 map 方法嗎?

將 df 拆分為兩個后嘗試使用concat

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM