簡體   English   中英

如何從僅存在一次的熊貓數據框中過濾出值

[英]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.0187.6227.0 ,和118.5 ; 但是,值187.6118.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.

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