python-pandas
- pd.cut() - 1 - pd.cut( x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise', ) - x : 一维数组(对应前边例子中提到的销售业绩) - bins :整数,标量序列或者间隔索引,是进行分组的依据, - 如果填入整数n,则表示将x中的数值分成等宽的n份(即每一组内的最大值与最小值之差约相等);
- 如果是标量序列,序列中的数值表示用来分档的分界值
- 如果是间隔索引,“ bins”的间隔索引必须不重叠
 - right :布尔值,默认为True表示包含最右侧的数值 - 当“ right = True”(默认值)时,则“ bins”=[1、2、3、4]表示(1,2],(2,3],(3,4]
- 当bins是一个间隔索引时,该参数被忽略。
 - labels : 数组或布尔值,可选.指定分箱的标签 - 如果是数组,长度要与分箱个数一致,比如“ bins”=[1、2、3、4]表示(1,2],(2,3],(3,4]一共3个区间,则labels的长度也就是标签的个数也要是3
- 如果为False,则仅返回分箱的整数指示符,即x中的数据在第几个箱子里
- 当bins是间隔索引时,将忽略此参数
 - retbins: 是否显示分箱的分界值。默认为False,当bins取整数时可以设置retbins=True以显示分界值,得到划分后的区间 - precision:整数,默认3,存储和显示分箱标签的精度。 - include_lowest:布尔值,表示区间的左边是开还是闭,默认为false,也就是不包含区间左边。 - duplicates:如果分箱临界值不唯一,则引发ValueError或丢弃非唯一 - ok,所有参数的含义与作用就是这些了,纯文字解释怎么都不如代码跑一遍来的直观,我们在代码中实现一下再结合上述文字解释就很容易理解了。而且并不是所有参数都是常用的,有些参数很少用到! 
- pd.insert() - 把value插入dataframe的指定位置loc中,若插入的数据value已在DataFrame中,则返回 错误ValueError,如想完成重复值的插入需要把allow_duplicates设置为True - loc:参数column插入的位置,如果想插入到第一例则为0,取值范围: 0 <= loc <= len(columns),其中len(columns)为Dataframe的列数注意:这个参数没有-1- column:给 插入数据value取列名,可为数字,字符串等- value:可以是整数,Series或者数组等- allow_duplicates: 默认 False
- pd.max():求最大值 
- pd.min():求最小值 
- pd.mean():求平均值 
- pd.sum() :求和 
- pd.std(): 标准差 
- pd.groupby() - 我们现在根据员工进行groupby分组,得到的一个DataFrameGroupBy对象 - 根据某一个或一组属性分组,得到一个dataframegroupby对象 - 1 
 2- groupbying = df.groupby(by="employees") 
 # by可以省略- 1 - 分组之后,可以进行后续的各种聚合操作 - 1 
 2
 3
 4- groupbying.max() 
 groupbying.min()
 groupbying.mean()
 groupbying.median()- pd.groupby()还支持组迭代 - 1 
 2
 3- for name,group in groupbying: # 遍历.DataFrameGroupBy对象 
 print(name)
 print(group)- 对DataFrameGroupBy对象使用get_group()方法,能够让我们得到分组元素中的指定组的数据 - 分组之后对同一个列名使用不同的函数,函数使用列表形式:下面 表示的是对score分别求和、最大值、最小值、均值、个数(size) - 1 - df9 = df.groupby("employees")["score"].agg(["sum","max","min","mean","size"]).reset_index() 
- pd.agg() - 聚合操作:可以指定一个列或者多个列分别使用不同的聚合函数来聚合。 - 对单个列进行聚合操作: - 1 
 2
 3- # df.groupby("employees")["salary"].sum 
 # 如果只是单个元素,上下两种写法等价
 df.groupby("employees").agg({"salary":"sum"})- 一般情况下,结果是一个以分组字段为行索引的数据帧,那如果我们也想把这个行索引变成数据帧中的一个列名属性,使用reset_index完成: - 1 - df9 = df.groupby("employees")["score"].agg(["sum","max","min","mean","size"]).reset_index() - 对多个列使用不同的聚合函数,比如:我们想对salry求和、对score求均值,使用字段对的方式来实现 - 1 
 2
 3
 4- salary_score = df.groupby("employees").agg({"salary":"sum", 
 "score":"mean"
 })
 salary_score- 详细地解释下上面的一行代码的各个函数功能: - groupby:指定分组的列名字段
- agg:指定列名和想实施的聚合函数
- reset_index:对生成的数据帧进行索引重置
- rename:对生成的列名进行修改;上面是手动指定,需要全部列出来;rename可以对我们想要修改的列名进行重命名
 
- pd.pivot_table() - 数据透视表: - 数据分类汇总
- 变量聚合运算
- “长表”转化为“宽表
 - 1 
 2- pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', 
 fill_value=None, margins=False, dropna=True, margins_name='All', observed=False, sort=True)- data:数据集
- values:要聚合的列,默认情况下对所有数值型变量聚合
- index:要在数据透视表上分组的变量,可设置多个列,实现多层分组
- columns:要在数据透视表上分组的变量,注意其每个取值作为1列,实现“长表”转化为“宽表”
- aggfunc: 对values进行计算,默认为np.mean
- fill_value:要用来替换缺失值的值(在聚合后生成的数据透视表中)。
- sort: 布尔型,默认True. 是否将结果排序
 - index相当于数据透视表的“行”或理解为数据透视表的key,可以有多个key;values相当于数据透视表的“列”;columns相当于把列再进一步细分,也是实现“长表”转“宽表”的关键;aggfunc是对聚合在i行j列的n个数据进行运算。多层嵌套:多个index组合可实现“行”的多层分类;values+columns组合可实现“列”的多层分类。 
- pd.crosstab() - 交叉表是一种用于计算分组频率的特殊透视图,对数据进行汇总。与许多计算分组汇总统计信息的函数一样,crosstab()可以处理分类数据。它可用于将两个或多个变量分组,并为每组的给定值执行计算。 - 函数接受两个或多个列表、pandas series 或dataframe,默认情况下返回每个组合的频率。我总是喜欢从一个例子开始,这样你可以更好地理解定义,然后我将继续解释语法。 - crosstab()总是返回一个数据帧,实例: - 1 - pd.crosstab(index=diamonds['cut'], columns=diamonds['color']) - 查看每个组合的平均价格。crosstab()提供values参数来引入第三个要聚合的数值变量: - pd.crosstab(index=diamonds[‘cut’], 
 columns=diamonds[‘color’],
 values=diamonds[‘price’],
 aggfunc=np.mean).round(0)
- pd.apply() - apply() 使用时,通常放入一个 lambda 函数表达式、或一个函数作为操作运算 - 1 - DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds - func 代表的是传入的函数或 lambda 表达式; 
- axis 参数可提供的有两个,该参数默认为0/列 -  0 或者 index ,表示函数处理的是每一列; -  1 或 columns ,表示处理的是每一行; 
- raw ;bool 类型,默认为 False; -  False ,表示把每一行或列作为 Series 传入函数中; -  True,表示接受的是 ndarray 数据类型; 
 - apply() 最后的是经过函数处理,数据以 Series 或 DataFrame 格式返回。