营销型网站建设的目的,wordpress主题上传怎么用,做本地网站能做吗,外贸跟单的流程Pandas分组聚合 分组单列和多列分组Series 系列分组通过数据类型或者字典分组获取单个分组对分组进行迭代 聚合应用单个聚合函数应用多个聚合函数自定义函数传入 agg() 中对不同的列使用不同的聚合函数 分组聚合的流程主要有三步#xff1a;
分割步骤将 DataFrame 按照指定的… Pandas分组聚合 分组单列和多列分组Series 系列分组通过数据类型或者字典分组获取单个分组对分组进行迭代 聚合应用单个聚合函数应用多个聚合函数自定义函数传入 agg() 中对不同的列使用不同的聚合函数 分组聚合的流程主要有三步
分割步骤将 DataFrame 按照指定的键分割成若干组应用步骤对每个组应用函数通常是累计、转换或过滤函数组合步骤将每一组的结果合并成一个输出数组。 分组
通常我们将数据分成多个集合的操作称之为分组Pandas 中使用 groupby() 函数来实现分组操作。
单列和多列分组
对分组后的子集进行数值运算时不是数值的列会自动过滤
import pandas as pd
data {A: [1, 2, 2, 3, 2, 4],B: [2014, 2015, 2014, 2014, 2015, 2017],C: [a, b, c, d, e, f],D: [0.5, 0.9, 2.1, 1.5, 0.5, 0.1]}
df pd.DataFrame(data)
df.groupby(B) #单列分组 返回的是一个groupby对象
df.groupby([B,C]) #多列分组Series 系列分组
选取数据帧中的一列作为 index 进行分组
df[A].groupby(df[B]) #df的 A 列根据 B 进行分组通过数据类型或者字典分组
数据类型分组
df.groupby(df.dtypes,axis1) # axis1表示按列分组以数据类型为列名传入字典分组:
dic {A: number, B: number, C: str, D: number}
df.groupby(dic, axis1) #按列分组列名是字典的值获取单个分组
使用 get_group() 方法可以选择一个组。
df.groupby(A).get_group(2)
OutputA B C D
1 2 2015 b 0.9
2 2 2014 c 2.1
4 2 2015 e 0.5对分组进行迭代
GroupBy 对象支持迭代可以产生一组二元元组由分组名和数据块组成。
for name,data in df.groupby(A):print(name)print(data)
Output:
1A B C D
0 1 2014 a 0.5
2A B C D
1 2 2015 b 0.9
2 2 2014 c 2.1
4 2 2015 e 0.5
3A B C D
3 3 2014 d 1.5
4A B C D
5 4 2017 f 0.1聚合
聚合函数为每个组返回单个聚合值。当创建了 groupby 对象就可以对分组数据执行多个聚合操作。比较常用的是通过聚合函数或等效的 agg 方法聚合。 常用的聚合函数
应用单个聚合函数
对分组后的子集进行数值运算时不是数值的列会自动过滤
import pandas as pd
import numpy as np
data {A: [1, 2, 2, 3, 2, 4],B: [2014, 2015, 2014, 2014, 2015, 2017],C: [a, b, c, d, e, f],D: [0.5, 0.9, 2.1, 1.5, 0.5, 0.1]}
df pd.DataFrame(data)
df.groupby(B).sum() #对分组进行求和应用多个聚合函数
df.groupby(B).agg([np.sum,np.mean,np.std])自定义函数传入 agg() 中
def result(df):return df.max() - df.min()
df.groupby(B).agg(result) #求每一组最大值与最小值的差对不同的列使用不同的聚合函数
mapping {A:np.sum,B:np.mean}
df.groupby(C).agg(mapping)