我有一个数据框:
id group
x1 A
x1 B
x2 A
x2 A
x3 B
我想创建一个新列
new_group
,根据以下条件:
如果在同一个id
中有两个不同的group
值,例如行1和2的A组和B组,则new_group
的值应为"two"。如果在同一个id
中仅有1个唯一的group
值,例如行3和4的A组,则new_group
的值应为该组A。否则,指定B。id group new_group
x1 A two
x1 B two
x2 A A
x2 A A
x3 B B
我尝试过这样的操作,但不知道如何捕捉所有的if-else条件:
df.groupby("id")["group"].filter(lambda x: x.nunique() == 2)