我想为数据框中的每个 ID 排除在特定二进制变量(“Y”)中具有相同值的行。 这意味着如果一个 ID 在 Y 中有相同的值(只有 0 或只有 1),那么它应该被排除。
数据说明:
ID X Y
a .. 0
a .. 0
a .. 0
b .. 1
b .. 0
b .. 1
b .. 0
c .. 1
c .. 1
c .. 1
c .. 1
预期结果:
ID X Y
b .. 1
b .. 0
b .. 1
b .. 0
最佳答案
在ID
上使用groupby()
和transform
作为nunique
,然后过滤结果大于1的行:
df[df.groupby('ID')['Y'].transform('nunique')>1]
ID X Y
3 b .. 1
4 b .. 0
5 b .. 1
6 b .. 0
关于pandas - 过滤每个 ID 在特定变量中具有相同值的行 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57908894/