groupby java

作者:原创时间:2022-03-22
文档

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();
    }

 以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
guava java hbase java hibernate java hotspot java idea创建java idea创建普通java项目 idea怎么建立java idea编写java程序 influxdb java instance java instant java integer java interface java iterator java 铁观音产地是哪个地方 java -ea 南极洲有哪些国家 行程码带*号什么意思 祁连山在哪个省境内 idea新建java项目 grep java golang调用java glue java geojson java geohash java gdb java gdal java gateway java for循环java foreach java field java 爱奇艺黄金会员和星钻会员的区别 false是java关键字吗 extends java extend java excel读取java enum java 小程序和app的区别 awesome java arrays java