groupby java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了groupby java相关的知识,希望对你有一定的参考价值。

参考技术A 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 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();     

Java 遍历Map;Stream 对列表分组的groupBy

Java 遍历Map常见的五种方法_欣欣有泪的博客-CSDN博客_java 遍历map

Java8 中通过 Stream 对列表分组的groupBy 的使用_red_stone_mi的博客-CSDN博客_stream的groupby

以上是关于groupby java的主要内容,如果未能解决你的问题,请参考以下文章

将 GroupBy 对象 (groupby().size) 转换为字典

为啥'groupby(x,np.isnan)'的行为与'groupby(x)如果键是nan'不同?

spoon中的分组groupby在哪里

python [groupby]示例groupby #pandas #secret

为啥将 groupby 转换为列表时 groupby 分组会发生变化? [复制]

hive Groupby 输出未包含在groupby的字段