groupby,java
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
groupby java是什麼,讓我們一起了解一下?
groupby的作用是通過一定的規則將一個數據集劃分成若干個小的區域,然後針對若干個小區域進行資料處理,groupby核心用法是利用本身的某一列或多列內容進行分組聚合。
groupby的核心用法:
(1)根據DataFrame本身的某一列或多列內容進行分組聚合,(a)若按某一列聚合,則新DataFrame將根據某一列的內容分為不同的維度進行拆解,同時將同一維度的再進行聚合,(b)若按某多列聚合,則新DataFrame將是多列之間維度的笛卡爾積,即:新DataFrame具有一個層次化索引(由唯一的鍵對組成),例如:“key1”列,有a和b兩個維度,而“key2”有one和two兩個維度,則按“key1”列和“key2”聚合之後,新DataFrame將有四個group;
注意:groupby預設是在axis=0上進行分組的,通過設定axis=1,也可以在其他任何軸上進行分組。
(2)groupby,根據分組鍵的不同,有以下4種聚合方法:
1、分組鍵為Series。
(a)使用原df的子列作為Series。
df.groupby([ df[‘key1’], df[‘key2’] ]).mean()
(b)使用自定義的Series。
mapping={‘a’:‘red’,‘b’:‘red’,‘c’:‘blue’,‘d’:‘blue’,‘e’:‘red’,‘f’:‘orange’}
map_series=pd.Series(mapping)
people.groupby(map_series,axis=1).count()
2、分組鍵為列名。
df.groupby([ ‘key1’,‘key2’ ]).mean()
3、分組鍵為陣列。
states=np.array([‘Ohio’, ‘California’, ‘California’, ‘Ohio’, ‘Ohio’])
years=np.array([2004,2005,2006,2005,2006]) #自定義陣列
df[‘data1’].groupby( [ states,years ] ).mean()
4、分組鍵為字典。
mapping={‘a’:‘red’,‘b’:‘red’,‘c’:‘blue’,‘d’:‘blue’,‘e’:‘red’,‘f’:‘orange’} #自定義字典。
by_column=people.groupby(mapping,axis=1).sum() #指定axis=1,表示對列資料進行聚合分組。
5、分組鍵為函式。
例如:傳入len函式(可以求取一個字串長度陣列),實現根據字串的長度進行分組。
people.groupby(len).sum() #將字串長度相同的行進行求和。
5、分組鍵為函式和陣列、列表、字典、Series的組合。
引入列表list[ ] 將函式跟陣列、列表、字典、Series混合使用作為分組鍵進行聚合,因為任何東西最終都會被轉換為陣列。
key_list=[‘one’,‘one’,‘one’,‘two’,‘two’] #自定義列表,預設列表順序和df的列順序一致。
people.groupby([ len,key_list ]).min()
6、分組鍵為具有多重列索引df 的列索引層次。
hier_df.groupby(level=‘cty’,axis=1).count() #利用引數level,指明聚合的層級。
程式碼示例說明:
將多個欄位拼接成一個新欄位,在使用Java8的groupBy進行分組。
Map<String, List<EntryDeliveryDetailywk>> detailmap = details.stream().collect(Collectors.groupingBy(d -> fetchGroupKey(d) ));private String fetchGroupKey(EntryDeliveryDetailywk detail){ return detail.getSkuId().toString() + detail.getItemsName() + detail.getWarehouseId().toString() + detail.getSupplierId().toString(); }
以上就是小編今天的分享了,希望可以幫助到大家。
-
微博怎麼顯示手機型號,微博如何顯示手機型號
微博怎麼顯示手機型號:1、首先需要點選手機桌面中的微博。2、然後再點選螢幕右下方的我的。3、然後再點選螢幕上方的設定圖示。4、然後再點選會員專屬設定。5、然後再點選微博來源。6、最後選擇想要顯示的手機型號就可以了。...
-
信用卡的錢怎麼轉到微信,信用卡的錢轉到微信方法
1、信用卡需要先辦理現金轉出業務,先將額度轉賬到銀行卡里,再通過銀行卡充值的方法來轉到微信錢包中。因此,信用卡無法直接將額度轉賬到微信裡,中間必須通過銀行卡才可以完成。信用卡繫結在微信中只可以用於消費,轉賬、發紅包都是不支援的。2、另外,信用卡綁定了微信...
-
載人火箭頂部有一個尖頂叫什麼塔
1、載人火箭頂部有一個尖頂叫逃逸塔,又名逃生塔,裝在飛船頂端,從遠處看像是火箭上的避雷針,與一般火箭圓錐形的頭部很不相同。2、由塔架、逃逸發動機和分離發動機(均為固體火箭發動機)組成,發生緊急情況時,逃逸發動機迅速點火,使航天員座艙(返回艙)與固體火箭分離,迅速脫離...
-
蘋果手機怎麼縮圖
智慧手機的拍照功能越來越好,拍出來的圖片也越來越清晰,用手機來記錄生活中的點滴已成為了人們的日常習慣,而平時也會用手機對圖片進行一些簡單的處理,那麼,蘋果手機要怎麼縮小圖片尺寸呢?蘋果手機圖片尺寸可以通過郵件來進行調整。開啟蘋果手機,在相簿中選擇需要調整...