pandas - 过滤每个 ID 在特定变量中具有相同值的行 - Pandas

标签 pandas

我想为数据框中的每个 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/

相关文章:

python - 广义代码中某些列的一阶差分

python 和 Pandas : series to timedelta

python - 使用 Pandas 中的 apply 函数来使用每行的正则表达式计数

Python pandas,多索引,切片

python - 按位置切片 MultiIndex pandas DataFrame

python - Pandas:转置、分组和汇总列

pandas - 无法将大数据作为数据框从 Google BigQuery 导入到 Google Cloud DataLab

python - 创建具有相同尺寸的交集 DataFrame

python - pandas:将 CSV 系列转换为数据框

Python堆叠直方图分组数据