Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

說到排序,大家都不陌生,任何使用過Excel的人都知道,對一列或多列,升序或降序排序,簡直不要太Easy。但遇到如下的情況,你還要使用Excel排序嗎?至少我不會,即使能實現也可能很麻煩,不要給我提什麼VBA,有學這個的時間,Python都可以學會了。

補充說明:在常見的數據庫如MySQL,Hive等有窗口函數,指定窗口(即分組),按照指定的列排序,如常用的row_number()函數,效果類似本節內容。

數據:有各個地區的水果銷量,請找出每個地區銷量排前三的水果

其他類似場景,如班級各科考試成績都在一個數據豎表中(若不通科目在不同的列,可使用Unpivoting 節點轉換在同一列的長表中),找出每科成績最高的三個學生,與下數據類似

原始數據

Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

排序後的數據

Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

可根據小於等於3進行過濾

如何實現

使用Knime分析軟件,So Easy! 一個Rank節點搞定。標號為1黃色框選節點時生成模擬數據表,你可以直接使用讀入類節點,載入你需要的數據表。

Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

使用Rank節點排序

Rank節點設置,及說明

Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

1、選擇分組列。每個相同屬性值將排列在一起,如“華東”地區的各行都排在一起

2、分組後,該組內按照那個列排序,如按照銷量降序排序

3、排序的標號有三種 比如:數值95,95,92,90

  • Standar: 標準排序,排序則為1,1,3,4 (相同值同序,不連續)
  • Dense:密度排序,排序為1,1,2,3(相同值同序,下一個接上一個順序,不會跳序)
  • Ordinal:順序排序, 排序為1,2,3,4(即使有相同值,也會按照排序的絕對順序排序,不重複序號)

本例中,選擇Ordinal即可,可根據你的需要,選擇不同的排序方式。

補充

若使用Row Filter,選擇小於等於3的條件過濾,在只保留各地區前三銷量的水果


Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

此處的Sorter 為常用的排序節點

Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

過濾後的明顯數據

若在使用Group by節點,可得到彙總的如下數據


Knime數據分析入門- 10 分組排序(這樣的排序你會嗎)

彙總後數據

不瞭解Knime軟件的同學,請翻我往期的文章。


分享到:


相關文章: