[英]Python: How to replace values in an array by values of another array if smaller than?
[英]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.