Python 如何通过在另一列中多次映射的列中出现值来提取数据?
我的数据框架如下:Python 如何通过在另一列中多次映射的列中出现值来提取数据?,python,pandas,Python,Pandas,我的数据框架如下: Data Items Key SD1 ABX2 9 SD2 ABX2 10 SD3 ABX2 23 SD1 CAB2 sd SD1 ABX2 km SD1 CAB2 kj SD5 TND lo SD9 TNK gf SD7 SDK bf SD11 CAB2 lo SD1 TND 78 SD3 TND
Data Items Key
SD1 ABX2 9
SD2 ABX2 10
SD3 ABX2 23
SD1 CAB2 sd
SD1 ABX2 km
SD1 CAB2 kj
SD5 TND lo
SD9 TNK gf
SD7 SDK bf
SD11 CAB2 lo
SD1 TND 78
SD3 TND nm
我想根据Items列中的值进行筛选,该列至少包含三种不同的数据。预期产出为:
Data Items Key
SD1 ABX2 9
SD2 ABX2 10
SD3 ABX2 23
SD1 ABX2 km
SD5 TND lo
SD1 TND 78
SD3 TND nm
您可以使用groupby.transform'nunique'计算每个项目出现的数据数,然后使用布尔索引进行筛选:
df[df.groupby('Items').Data.transform('nunique')>=3]
输出:
Data Items Key
0 SD1 ABX2 9
1 SD2 ABX2 10
2 SD3 ABX2 23
4 SD1 ABX2 km
6 SD5 TND lo
10 SD1 TND 78
11 SD3 TND nm