基于三列熊猫过滤我的数据

时间:2020-08-07 16:46:07

标签: python pandas filter duplicates

全部

我对如何执行此操作感到困惑。

说我有下表(我提供的片段只有1个id,但是我有很多id)

      *id*         *status*                     *year*               
        2           active                         2018               
        2           active                         2019                  
        2           dissolved                      2019                
        2           dissolved                      2020 
        3           active                         2018               
        3           dissolved                      2019                  
        3           active                         2019                
        3           dissolved                      2020  

我想对其进行过滤,以使如果id和year相同,则将status =的行分解为给定值:

      *id*         *status*                     *year*               
        2           active                         2018                                
        2           dissolved                      2019                
        2           dissolved                      2020 
        3           active                         2018                               
        3           dissolved                      2019                
        3           dissolved                      2020  

我尝试过:

 df.sort_values(['id','year']).drop_duplicates(subset=['id', 'year'],keep='last')

但有时一家公司又从解散状态转为活跃状态,因此当我真的希望在同一年为该客户解散状态时,我会获得活跃状态。这就是为什么我想检测状态是否不同,如果是这样,请保持溶解状态。即在哪里保留“最后一个”状态,基本上我该怎么做才能保持“已溶解”状态。

我该如何实现?

2 个答案:

答案 0 :(得分:1)

A=50000
B=60000
C=50000

答案 1 :(得分:0)

据我了解,您希望所有具有相同ID,年份和状态==的行都被解散。 试试这个:

df[(df.id == df.year) & (df.status == 'dissolved')]
相关问题