python - 当一个序列在 df 中的簇中时删除原始数据

标签 python pandas

我有一个数据框,例如:

Cluster sequence_name
1   specie1
1   specie2
1   specie3
1   sequence1
1   sequence2
2   specie8
3   specie2
4   sequence1
4   sequence3
4   specie56
...

我想删除仅包含一个序列的所有簇,在示例中我应该得到:

Cluster sequence_name
1   specie1
1   specie2
1   specie3
1   sequence1
1   sequence2
4   sequence1
4   sequence3
4   specie56
...

感谢您的帮助。

最佳答案

Groupby.filter 在这里效果很好

df = df.groupby('Cluster').filter(lambda x: x.sequence_name.nunique() > 1)

    Cluster sequence_name
0   1       specie1
1   1       specie2
2   1       specie3
3   1       sequence1
4   1       sequence2
7   4       sequence1
8   4       sequence3
9   4       specie56

关于python - 当一个序列在 df 中的簇中时删除原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519474/

相关文章:

python - 使用 IndexSlice 通过 Pandas 过滤多索引数据帧

python - 找出所有分类变量中的唯一类别

python - 基本 Docopt 示例不起作用

python - 如何显示数据框,其中列连续显示两次

python - pyspark 数据框和多边形(geopandas)之间的空间连接

python pandas - 如何合并一列中的日期和另一列中的时间并创建新列

python - 如何取消数据框列中字典列表的嵌套

python - Pandas 数据框中的逻辑或/按位或

python - 在不破坏可读性的情况下压缩此 Python 语句

python - Django 模型按日期时间的日期分组