簡體   English   中英

Python Pandas,如何替換計數小於X的值

[英]Python Pandas, How to replace values that have a count smaller than X

這是一個例子:

    A    
0   V1 
1   V1 
2   V2 
3   v4  
4   v4 
5   v7 

我想結束這樣的事情:

    A    
0   V1 
1   V1 
2   np.NaN 
3   v4  
4   v4 
5   np.NaN

基本上是這樣的:

df.A[df.A.value_counts() < 2] = np.NaN

使用value_counts ,然后按isin檢查index的值:

a = df.A.value_counts()
m = df.A.isin(a.index[a<2])
print (m)
0    False
1    False
2     True
3    False
4    False
5     True
Name: A, dtype: bool

df.loc[m, 'A'] = np.NaN
print (df)
     A
0   V1
1   V1
2  NaN
3   v4
4   v4
5  NaN

使用groupby + transform ,然后用指數loc -

df.loc[df.groupby('A').A.transform('count').lt(2), 'A'] = np.nan    
df

     A
0   V1
1   V1
2  NaN
3   v4
4   v4
5  NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM