python - 删除在 DataFrame 列中只出现一次的值

标签 python pandas filtering dataframe

我在 x 列中有一个具有不同值的数据框。我想删除在一列中只出现一次的值。

所以这样:

   x
1 10
2 30
3 30
4 40
5 40
6 50

应该变成这样:

   x
2 30
3 30
4 40
5 40

我想知道是否有办法做到这一点。

最佳答案

您可以使用 groupby 轻松获得它和 transform :

In [1]: import pandas as pd

In [2]: df = pd.DataFrame([10, 30, 30, 40, 40, 50], columns=['x'])

In [3]: df = df[df.groupby('x').x.transform(len) > 1]

In [4]: df
Out[4]: 
    x
1  30
2  30
3  40
4  40

关于python - 删除在 DataFrame 列中只出现一次的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33071182/

相关文章:

python - imshow 更改图像大小后绘制点

python - 多个异步单元测试失败,但一一运行会通过

python - 如何使用 Python(使用 pandas 或其他方式)巧妙地匹配两个数据框?

python - Pandas DataFrame 的自定义方法

mysql - 无法在 WHERE 子句中使用 SELECT 子句的别名

wcf - OData $filter 与 $expand 中的项目

python - request.cls.driver 在具有类范围的 pytest fixture 中有什么作用?

python - 在 wxPython 中创建主框架的子框架

excel - 传说中的pandas python中的"None"

performance - 将谓词应用于 Prolog : requesting advice on implementation choices 中列表的子集