这是我的数据框
df = pd.DataFrame({'Col1':['Joe','Bob','Joe','Joe'],
'Col2':[55,25,88,80]})
我只想知道在Col1'
中出现多次的名称我可以这样做
grouped = df.groupby("Col1")
grouped.filter(lambda x: x["Col1"].count()>2)['Col1'].unique()
然而,这是丑陋的代码
是否有更简洁的清洁方式?
答案 0 :(得分:3)
答案 1 :(得分:3)
以下是使用np.unique
-
unq,count = np.unique(df.Col1,return_counts=True)
out = unq[count>n]
示例运行 -
In [34]: df
Out[34]:
Col1 Col2
0 Joe 55
1 Bob 25
2 Joe 88
3 Joe 80
4 Joe 44
5 Bob 24
6 Joe 45
In [35]: unq,count = np.unique(df.Col1,return_counts=True)
In [36]: unq[count>3] # n = 3
Out[36]: array(['Joe'], dtype=object)