使用布尔值比较两个数据帧,并从该布尔值

时间:2016-10-14 16:45:51

标签: python pandas boolean subset

这对我来说有点难以解释所以我会尽我所能。 我正在玩幸存者的巨大数据集和专栏#34; Cabin"有很多缺失值。所以我决定把重点放在" Cabin"和"票价"并创建了一个名为" Fare_sort"的新数据框,这两个列只有" Fare"被分类。

这是一个" head"来自数据集" Fare_sort":

  Fare            Cabin
732  0.0000          NaN
413  0.0000          NaN
806  0.0000          A36
266  0.0000          NaN
633  0.0000          NaN
674  0.0000          NaN
815  0.0000         B102
372  0.0000  B52 B54 B56
21   3.1708          NaN
378  4.0125          NaN
872  5.0000  B51 B53 B55

这是尾巴

527  221.7792              C95        
114  221.7792          C55 C57         
81   221.7792          C55 C57        
156  221.7792              C97        
716  227.5250              C45         
380  227.5250              NaN       
557  227.5250              NaN         
700  227.5250          C62 C64        
299  247.5208          B58 B60          
118  247.5208          B58 B60          
184  247.5208          B58 B60         
375  262.3750              NaN          
24   262.3750  B57 B59 B63 B66          
742  262.3750  B57 B59 B63 B66         
59   262.3750              B61       

然后我创建了另一个数据库,其中只包含" Cabin"有价值并称之为概述。

Overview =Fare_sort[Fare_sort.Cabin.notnull()==True]

所以概述的负责人看起来像这样:

     Fare        Cabin  
806   0.0          A36       
815   0.0         B102       
372   0.0  B52 B54 B56      
263   0.0          B94         
872   5.0  B51 B53 B55

我现在要做的是创建另一个数据框,用于比较列' Fare'来自dataframe"概述"到原始数据框' Fare_sort" Fare"如果是Overview.Fare == Fare_sort.Fare,我想将Fare_sort中的那一行(因此将添加Fare和Cabin)添加到新创建的数据帧df中。

因此,从新数据框上方发布的项目看起来如下:

 Fare            Cabin
732  0.0000          NaN
413  0.0000          NaN
806  0.0000          A36
266  0.0000          NaN
633  0.0000          NaN
674  0.0000          NaN
815  0.0000         B102
372  0.0000  B52 B54 B56
872  5.0000  B51 B53 B55

所以,基本上,"票价"价格在哪里" Cabin"至少有一个值,正被添加到新的数据帧中。

我试过玩这个代码

    for i in Overview.Fare:
        if i == Fare_sort.Fare:
            df = df.append(Fare_sort.Fare)

但是这段代码产生了错误。

感谢。

0 个答案:

没有答案