2017-11-14 1 views
0

の周波数を持っているパンダの列のすべての値は、架空の一例であるグループでください:は、どのように私はここで2以下

id cluster 
1 3 
2 3 
3 3 
4 1 
5 5 

のでid 4と5のクラスタは、いくつかのテキストに置き換える必要があります。

だから、私が使用して3未満の周波数を持っている値を見つけることができるよ:今

counts = distclust.groupby("cluster")["cluster"].count() 
counts[counts < 3].index.values 

、私は私が行くと、いくつかの任意のテキストで私のデータフレームでこれらの値を置き換えるかわかりません(すなわち「ノイズ」)

私はあなたが何かを含めるために私が欲しいなら、私に知らせて、それが十分な情報だと思う:

答えて

3
In [82]: df.groupby('cluster').filter(lambda x: len(x) <= 2) 
Out[82]: 
    id cluster 
3 4  1 
4 5  5 

は、更新:

In [95]: idx = df.groupby('cluster').filter(lambda x: len(x) <= 2).index 

In [96]: df.loc[idx, 'cluster'] = -999 

In [97]: df 
Out[97]: 
    id cluster 
0 1  3 
1 2  3 
2 3  3 
3 4  -999 
4 5  -999 
2
df.cluster.replace((df.cluster.value_counts()<=1).replace({True:'noise',False:np.nan}).dropna()) 
Out[627]: 
0  3 
1  3 
2  3 
3 noise 
4 noise 
Name: cluster, dtype: object 

df.cluster=df.cluster.replace((df.cluster.value_counts()<=1).replace({True:'noise',False:np.nan}).dropna()) 
df 
Out[629]: 
    id cluster 
0 1  3 
1 2  3 
2 3  3 
3 4 noise 
4 5 noise 
バックを割り当て
関連する問題