[英]How to filter out values from a pandas data frame for which only one occurrence exists
我有一個帶有以下列和值的Pandas數據框
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
3 187.6 25.0 9.8
4 227.0 25.0 14.2
5 227.0 30.0 16.2
6 118.5 25.0 8.7
數據幀中給出的變量名df
具有三個不同的值,該值是335.0
, 187.6
, 227.0
,和118.5
; 但是,值187.6
和118.5
僅出現一次。 我想過濾數據框,使它擺脫僅出現一次的值,因此最終數據框看起來像。
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
4 227.0 25.0 14.2
5 227.0 30.0 16.2
顯然,在這種簡單情況下,我知道僅出現一次的值,並且我可以簡單地使用過濾功能將其清除。 但是,我想自動化該過程,以便Python可以確定哪些值僅出現一次並自動過濾它們。 如何啟用此功能?
使用duplicated
df[df.Temp.duplicated(keep=False)]
Out[630]:
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
4 227.0 25.0 14.2
5 227.0 30.0 16.2
嘗試這個
df['count']=df.groupby(['Temp']).transform(pd.Series.count)
df = df[df['count']>1]
df.drop(['count'],axis=1,inplace=True)
dict
這是一個dict
的方法來通過做同樣的事情WeNYoBen
seen = {}
for t in df.Temp:
seen[t] = t in seen
df[df.Temp.map(seen)]
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
4 227.0 25.0 14.2
5 227.0 30.0 16.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.