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、点击...
-
攝像头怎么连接手机,一文让你秒懂
1、摄像头用网线连上路由器,通电,电脑也连接在同一路由并安装客户端软件。2、用摄像头的搜索工具搜索到摄像头IP,把该IP改成与路由器同一网段保存。之后在IE栏输入该摄像头IP进入WEB端界面进行简单设置。3、进入路由进行端口映射,若摄像头是P2P功能的,此步可以省略...
-
超话等级在哪看
1、首先打开微博app,在首页点击我的选项,然后进入自己关注的超话,这时可以点击超话头像旁显示的粉丝数,点击进入之后就可以看到我的等级了。2、微博超话指的是微博的超级话题,是在新浪微博里面的兴趣内容社区。它是将话题模式和社区属性相结合的产品,目前微博超话的...
-
手机相册很多垃圾图片
我们使用手机去浏览网页,或者是刷微博以及微信的时候,都会加载一些网页,而且有些图片还会自动下载保存到手机相册里面,这就是为什么我们的手机相册总是会莫名的多出一些垃圾图片的原因。如果我们的手机下载了非官网渠道的APP,这种APP软件会出现无用图片,会在相册中保...