高阶函数
import pandas as pddf = pd.read_csv('DataAnalyst.csv')# 拿到数据三步:(1)info (2)head (3)describedf.head()# 转置:df.T (矩阵运算)# 用'avg'排序:- 升序:df.sort_values(by='avg') 等价于 df.sort_values('avg')- 降序:df.sort_values('avg',ascending=False)# 用数组排序: df.avg.sort_values(),df.avg是数组df.sort_values('avg',ascending=False)# 先对avg降序,再对city降序df.sort_values(['avg','city'],ascending=False)# 对索引进行排序df.sort_index()1、增列:- 升序 df['rank'] = df.avg.rank()- 降序 df['rank'] = df.avg.rank(ascending = False)2、df['rank'] = df.avg.rank(ascending = False,method='min')- mothod 默认按平均值排- method='min' 相同排名按最小值排- method='max' 相同排名按最大值排- method='first' 相同按index顺序来排df['rank']=df.avg.rank(ascending = False,method='min')df.sort_values(by = 'avg',ascending = False)3、unique查看唯一值,去重- df.city.unique()- df.workYear.unique()计数:- df.workYear.value_counts()- unique、value_counts 对应数组df.workYear.unique()df.workYear.value_counts()4、describe描述统计- df.describe()- df.avg.describe(),(count,mean,std,max,min,分位数)- df.sum(),(sum可换为 median,std,var)df.describe()5、cumsum累加函数- df.cumsum()- df.avg.cumsum()- df['cumsum'] = df.avg.cumsum()df['cumsum'] = df.avg.cumsum()# 调用函数不要调用错- min函数在DataFarme这个方法(这个类)里- cut函数在 pd 里6、cut分段函数- df['bins'] = pd.cut(df.avg,bins=20);df里面添加bin列,20等分- labels: 标签,分类- df['bins'] = pd.cut(df.avg,bins=4,right=True(包含右端点),labels=list('abcd'),retbins=False(左闭右开),precision=3(精度),include_lowest=False(不包含左端点))- df['bins'] = pd.cut(df.avg,bins=4,include_lowest=True)# 不规则分:- df['bins'] = pd.cut(df.avg,bins=[0,5,10,20,30,]),没有切割到30之后的,所以设立一个极大值100- df['bins'] = pd.cut(df.avg,bins=[0,5,10,20,30,100],labels=['0-5','5-10','10-20','20-30','30-100']- 可以在用户分级、消费水平分割,用这些方法df['bins'] = pd.cut(df.avg,bins=[0,5,10,20,30,100],labels=['0`5','5`10','10`20','20`30','30`100'])# 四分位法,百分位法pd.qcut(df.avg,4)df7、pd.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')按排名分- x:要进行分组的数据,数据类型为一维数组,或Series对象;- q:组数,即要将数据分成几组;- labels:可以理解为组标签,这里注意标签个数要和组数相等;- retbins=False:True则返回数值类型是元组,返回每个数对应的分组,且获取分组边界值的列表;- duplicates='raise':默认为raise;duplicates='drop’,表示若有重复区间则删除。cut与qcut的主要区别:cut:传入参数,是分组依据qcut:传入参数,要将数据分成多少组,即组的个数,具体的组距是由代码计算
