全部
我对如何执行此操作感到困惑。
说我有下表(我提供的片段只有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')
但有时一家公司又从解散状态转为活跃状态,因此当我真的希望在同一年为该客户解散状态时,我会获得活跃状态。这就是为什么我想检测状态是否不同,如果是这样,请保持溶解状态。即在哪里保留“最后一个”状态,基本上我该怎么做才能保持“已溶解”状态。
我该如何实现?
答案 0 :(得分:1)
A=50000
B=60000
C=50000
答案 1 :(得分:0)
据我了解,您希望所有具有相同ID,年份和状态==的行都被解散。 试试这个:
df[(df.id == df.year) & (df.status == 'dissolved')]