根据列值的计数过滤 pandas 数据框

问题描述 投票:0回答:1

我有一个看起来像这样的数据框 -

import pandas as pd
sample_df = pd.DataFrame(columns=["A", "B"], data=[[1, "Red"], [2, "Blue"], [3, "Green"],
                                                   [4, "Red"], [5, "Blue"], [6,"Yellow"]])


   A       B
0  1     Red
1  2    Blue
2  3   Green
3  4     Red
4  5    Blue
5  6  Yellow

我想根据“B”列中值的“计数”来过滤此数据框。我想获取“B”列中的值仅出现一次的那些行。

所以我想获取下面的数据框

   A       B
2  3   Green
5  6  Yellow
pandas dataframe numpy indexing
1个回答
0
投票

使用

.value_counts() == 1

import pandas as pd

df = pd.DataFrame(
    columns=["A", "B"],
    data=[
        [1, "Red"],
        [2, "Blue"],
        [3, "Green"],
        [4, "Red"],
        [5, "Blue"],
        [6, "Yellow"],
    ],
)

print(df[df["B"].map(df["B"].value_counts() == 1)])

输出:

   A       B
2  3   Green
5  6  Yellow
© www.soinside.com 2019 - 2024. All rights reserved.